2017-07-14 3 views
0

J'utilise l'état dans React, et j'ai des problèmes avec cela.Réagir - comment définir la même valeur dans différents états et les faire fonctionner différemment

Dans componentWillMount, j'ai défini la même valeur dans deux état. Comme ci-dessous,

let value = this.props.value; 
this.setState({ 
    a: value, 
    b: value, 
}) 

après l'état de réglage, je change a comme ci-dessous,

let a = this.state.a; 
a = newValue; 
this.setState({ 
    a, 
)} 

Lorsque je tente de changer d'état a, à la fois a et b sont changées ensemble. Pourquoi cela arrive-t-il?

+1

Comment êtes-vous changer l'état de 'a'? – tomr

+1

Cela ne devrait pas se produire. Vous faites probablement quelque chose de mal. – Chris

+0

Pour changer d'état dans la réaction Vous pouvez nettoyer l'état ou ajouter une nouvelle valeur. Nous utilisons souvent cette solution this.state.a = value2; this.state.b = valeur3; – Karol

Répondre

0

Parce que vous avez créé SetState pour 2 états à la fois. Vous devriez écrire:

//function a to setState for state a: 
a =() =>{ 
    this.setState(a: this.props.value) 
     } 
//function b to setState for state b: 
b =() =>{ 
    this.setState(b: this.props.value) 
     } 

Vous pouvez appeler facile à changer d'état d'un ou b :)