Maison > Questions et réponses > le corps du texte
Je vous demande à tous des conseils.
J'ai créé un composant Component et écrit une fonction de saut similaire à this.context.router.push("/user/list") dans un rappel de réussite ajax. Dans le même temps, Component.contextTypes={ router: React.PropTypes.object.isRequired } est écrit en dehors du composant. La requête ajax a également réussi, mais la page n'a pas sauté, ce qui est un peu douteux. . .
La structure du code est similaire :
class Component extends React.Component{
...
success: function(data) {
alert(data);
this.context.router.push(...)
}
}
Component.contextTypes={
router: React.PropTypes.object.isRequired
}
仅有的幸福2017-07-05 11:06:52
Vous ne parvenez pas à obtenir cela ? Essayez d'utiliser success()->()
阿神2017-07-05 11:06:52
Ici, j'écrirai sur les pièges que j'ai rencontrés lors de la recherche de réponses sur Internet. Il s'agit également d'informer les débutants qui rencontrent des problèmes identiques ou similaires plus tard. Veuillez également demander aux gestionnaires de publication concernés de ne pas les supprimer :
Dans Component.contextTypes. , je l'ai trouvé. Quelqu'un l'a écrit à l'intérieur du composant de cette façon :
class Component extends React.Component{
[有些人写static有些人又不写static] contentTypes: {
router: React.PropTypes.object.isRequired
}
...
this.context.router.push(...)
}
Cependant, lorsque je fais cela, j'ai toujours un problème ici, c'est-à-dire que l'erreur "Impossible de lire la propriété 'push' n'est pas définie" est signalée. Ce n’est pas évident pourquoi, écrivons-le d’abord
曾经蜡笔没有小新2017-07-05 11:06:52
"Impossible de lire la propriété 'push' n'est pas définie"
Cette erreur garantit que contextTypes est écrit
et le constructeur ne perd pas le contexte lors de l'appel de super
class Component {
constructor(props, context) {
super(...arguments) // 这样才行,如果只写props, 会把context 弄丢,所以super时始终建议这么写
}
}