0
votes

Comment attribuer des données CSV à l'état dans réagir?

J'ai un composant de réact simple, laissez l'utilisateur de télécharger le fichier CSV à l'aide de React-CSV-Reader, puis de la télécharger sur la base de données. Comment attribuer des données CSV à l'état dans réagir? Je rencontre l'erreur importateur.jsx: 23 non capote TypeError: impossible de lire la propriété 'State' de indéfini code> lorsque j'ai lu les données de l'état. XXX PRE>

IT Impression avec succès Console à la ligne console.log (data.length); code> et console.log (données); code>. Cependant, je pense que cela ne parvient pas à affecter les données CSV à l'état. P>

Il s'agit des données CSV imprimées avec succès dans la console. P>

0: (11) ["identifier", "postal", "volume", "weight", "service_time", "phone", "customer_name", "window_start", "window_end", "lat", "lng"]
1: (11) ["SN48164550", "089952", "1", "1", "15", "90648664", "Customer 860", "2018-10-11 10:00:00", "2018-10-11 13:00:00", "1.27601", "103.836"]
2: (11) ["SN78463977", "269836", "1", "1", "15", "92656072", "Customer 517", "2018-10-11 16:00:00", "2018-10-11 19:00:00", "1.31924", "103.797"]
3: (11) ["SN16822741", "559782", "1", "1", "15", "94274895", "Customer 202", "2018-10-11 12:00:00", "2018-10-11 15:00:00", "1.36392", "103.861"]


0 commentaires

3 Réponses :


1
votes

Il semble que handleclick code> n'est pas lié, par conséquent ce code> est indéfini à l'intérieur. Utilisez à la place:

    handleClick = () => {
        console.log("success");
        console.log(this.state.data);/*this is where error occur*/
    }


0 commentaires

3
votes

Votre Handleclick code> Le gestionnaire n'est pas limité, donc accédant à Ceci code> à l'intérieur de celui-ci ne fonctionnera pas. Il vous suffit de le lier dans le constructeur ou de l'utiliser une fonction de flèche.

constructor(props) {
    super(props);
    this.state = {data:[]};
    this.handleClick = this.handleClick.bind(this);
}


0 commentaires

0
votes

Comme les gars ont déjà dit que votre handleclick code> n'est pas lié à ceci code> Donc, pour résoudre ce problème, vous devez le lier en modifiant votre clic sur

constructor(props) {
    super(props);
    this.state = {data:[]};
    this.handleClick = this.handleClick.bind(this);
}


0 commentaires