C'est ainsi que nous utilisons componentWillReceiveProps
componentWillReceiveProps(nextProps) {
if(nextProps.myProp !== this.props.myProps) {
// nextProps.myProp has a different value than our current prop
}
}
C'est très similaire à componentDidUpdate
componentDidUpdate(prevProps) {
if(prevProps.myProps !== this.props.myProp) {
// this.props.myProp has a different value
// ...
}
}
Je peux voir quelques différences, comme si je fais setState dans componentDidUpdate, le rendu se déclenchera deux fois, et l'argument pour componentWillReceiveProps est nextProps, alors que l'argument pour componentDidUpdate
est prevProp, mais sérieusement je ne sais pas quand les utiliser. J'utilise souvent componentDidUpdate
mais avec prevState, par exemple pour changer l'état d'une liste déroulante et appeler l'API.
eg.
componentDidUpdate(prevProps, prevState) {
if(prevState.seleted !== this.state.seleted) {
this.setState({ selected: something}, ()=> callAPI())
}
}