Je viens souvent à ce genre de situation lorsque j'utilise des composants React statefull.Code commun dans le constructeur de composant React et componentWillReceiveProps
J'ai besoin de faire une opération sur les accessoires - soit faire un traitement que je veux maintenant avoir dans render()
ou définir l'état en fonction des valeurs dans les accessoires.
Comme je veux le faire lorsque le composant est initialement monté ainsi que lorsque les accessoires sont mis à jour, je me retrouve avec un code passe-partout comme ceci:
constructor(){
super(props)
const modifiedProps = doSomethingWithProps(props)
...
this.state = {initialState}
}
componentWillReceiveProps(nextProps) {
const modifiedProps = doSomethingWithProps(nextProps)
...
this.setState({newState})
}
doSomethingWithProps(props){
...
}
Y at-il une meilleure façon comment faire ? Pourquoi ne pas passer les accessoires au composant après qu'ils ont été transformés?
si vous ne définissez pas état, vous pouvez utiliser 'componentDidMount' au lieu de' constructor' – TryingToImprove
D'accord, je ne serais pas utiliser 'constructor' pour cela,' componentWillMount', est généralement là où je mets tout mon code pour ce genre de chose. –
@TryingToImprove Est-ce que 'componentDid/WillMount' est appelé même quand les accessoires sont juste mis à jour? –