J'ai des problèmes lorsque vous passez une méthode dans plusieurs composants enfants plus bas. Je dois tenir l'état dans la composante parent, d'où la raison de la rédaction de la méthode pour modifier les valeurs de l'état du parent. Maintenant, je sais que cela a été répondu à plusieurs reprises avant, mais tout ce que j'ai lu ne fonctionne pas?
Voici ce que j'essaie de faire: p>
code de méthode parent (orderview.js): p> Cette méthode est ensuite transmise comme des accessoires dans alors à l'intérieur à nouveau, je transmettai ensuite ceci à un autre enfant dans le composant enfin, dans le composant Remarque: j'ai mis en surbrillance les bits du code que je me soucie avec L'erreur i Vous recevez dans la console du navigateur est la suivante: p> maintenant je sais que cela RROR se produit lorsque vous n'avez pas Mais à nouveau, cela ne fonctionne pas. J'ai essayé les ressources suivantes mais pas de chance: p> Onchange n'est pas une fonction P> Quelqu'un peut-il s'il vous plaît expliquer où je vais mal? Comme ive Benn essayer cela pendant des heures maintenant et pas de chance: / p> merci! P> p> rendu () code>: p> CommandumRy CODE> Je reçois les accessoires comme suit et transmettez-le à nouveau sur un autre composant enfant: p> itemSAB code>: p> charges code> J'essaie d'utiliser la méthode pour simplement mettre simplement à jour une date: p> ** code> p> lier code> la méthode de la classe, mais j'utilise la syntaxe => ES6 que je pensais ne nécessite pas cela? J'ai même essayé d'ajouter la liaison au composant parent comme suit:
this.handlechargesdatechange = this.handlechargesdatechange.bind (this); code> p>
4 Réponses :
Vous attribuez de manière incorrecte un accessoire ici: changez-le à p> ou p>
Bonjour, merci pour la réponse rapide, mais cela ne fonctionne toujours pas: /
@AlexanderDunn S'il vous plaît essayez ma réponse:]
@AlexanderDunn Vous obtenez toujours la même erreur?
Oui, obtenez toujours la même erreur. Ce n'est pas due aux classes étant une classe par défaut? Comme ceci: exportation de classe de classes par défaut étend le composant code>
Vous auriez eu une erreur différente si c'est le cas. Avez-vous un repo / sable de sable avec le code complet quelque part? On dirait que vous n'abandonnez pas / n'abandonnez pas correctement UpdaChargedates code> à un certain niveau.
Impossible de tester le code en ce moment mais voici mon devinez: au lieu de p> in modifie également ceci dans Commandummary code > p>
OrdreView.js CODE>: P> handleChargesDateChange = (e) => () => {
const date = e.target.value;
const chargeId = e.target.name;
console.log(date);
this.setState({
updatedChargeDates: [
...this.state.updatedChargeDates,
{[chargeId]: date}
]
})
}
Quelle est la différence ici?
Hm ... ça marche? À ma compréhension si vous passez paramètre de parent aux enfants comme onclick / onchange code> fonction que vous devez utiliser une fonction au curry
On dirait que vous avez un autre problème avec mises à jourElementdate code>, en fonction de votre erreur
Vous n'avez pas détruit l'UpdaCharedates accessoires de manière correcte, essayez ceci;
const { updateChargeDates } = this.props;
Maintenant, je sais que cette erreur se produit généralement lorsque vous ne liez pas la méthode à la classe, mais j'utilise la syntaxe => ES6 que je pensais ne nécessite pas cela? P> blockQuote>
Vous avez raison, la syntaxe ES6 ne nécessite pas de liaison de la fonction. Le problème est que les autres ont déclaré que les autres ont déclaré que vous êtes une déstructuration incorrecte
UpdatChargedates code>, vous devez l'envelopper dans {} pour qu'il soit déstructuré. P>
const {updatchahargedate} = ceci.props; code> p>Jetez un coup d'œil à Ceci si vous souhaitez en savoir plus sur ES6 Destructuring. p>
Le message d'erreur indique spécifiquement que l'erreur est en ligne 19 à DateInput.js. Est-ce une classe personnalisée que vous avez créée ou d'une bibliothèque tierce partie? Vous devez vérifier que la classe contient réellement la méthode de commande, car l'erreur indique qu'il n'est pas une fonction. P>
DateInput est une classe personnalisée qui accepte ONCHANGE. Je sais cela comme quand j'avais à l'origine la méthode mise en œuvre dans la classe enfant, je reçois ce que j'attendais.