j'ai suivi Ce didacticiel réagissant sur la création d'une simple application TODO. Maintenant, je veux modifier cette application et ajouter une fonction "Modifier".
J'essaie d'éditer l'état à l'aide de cela.SeState, mais la console.log indique que mon constructeur: p> ma fonction d'édition actuelle: p> le bon La clé est enregistrée mais rien d'autre ne fonctionne. donc dans ma version simple appuyant sur le bouton d'édition doit modifier le texte de l'appui pour "éditer "Mais ça ne fait rien. P> p> non capateur TypeError: impossible de lire le «texte» de la propriété non définie < / code> p>
console.log (this.state.text) code> renvoie
non défini code> p>
4 Réponses :
regarder votre état, il devrait être Vous pouvez mettre à jour votre état comme celui-ci: P> this.state.currentitem.text code>
editItem = key => {
console.log(key)
this.setState(prevState=> ({ currentItem: {key, text: 'edit'})
}
Cela résout la question du retour non défini mais maintenant le journal est vide (j'ai entré du texte)
OK, dans ce cas, il semble que votre état ne soit pas réglé correctement. Vérifiez cette partie de la logique (peut-être l'ajouter à votre question).
Quelle partie de ma logique pourrait être fausse? Cela.CurrentItem.text retourne vide. Pouvez-vous m'aider ici?
Où / comment définissez-vous state.currentitem code> ou
état.currentitem.text code>?
C'est fait sur la fonction de guidon: guidoninput = e => {const itemtext = e.target.value const actuellement actuellement. Ceci.SetState ({actuelItem,})} code>
Cela semble correct, je pense que vous devrez peut-être ajouter plus de code à votre question ... Comment guérisseur code> est appelé, par exemple?
Votre journal de console est faux, il devrait être console.log (this.state.currentitem.text); code> p>
console.log (this.state.currentitem.text); code> retourne la valeur vide pour moi. Une idée? J'ai essayé différentes approches mais aucune ne fonctionne
Il renvoie un élément vide car vous l'initialisez à vide dans le constructeur. Et dans votre fonction d'édition, vous ne ciblez pas le bon état lorsque vous modifiez l'état
Pouvez-vous préciser quel est un bon état? Je le googla mais je n'ai rien trouvé. Merci de votre aide!
La console doit être this.state.currentitem.text code> strong>. Peut-être devriez-vous obtenir une tasse de café ou une petite promenade avant de vous assister à nouveau à coder :) p>
Merci. Essayé mais le retour est vide. Une idée?
Votre fonction d'édition devrait probablement ressembler à ceci. Vous devez définir l'état actuel de l'état actuel.
editItem = key => { this.setState({ currentItem: { text: 'edit', key, } }) }
Pouvez-vous fournir du code où vous appelez la fonction d'édition ... fondamentalement le flux
Donc, vous sélectionnez d'abord l'élément en cliquant sur
Oui. Ceci est le code du composant TODOITEMS: {item.text} this.props.deleteitem (item.keyeetitem (item.key)}> Supprimer this.props.editem (item.key)}> Modifier Dropdowdbutton> Li> Code>