this.state
からオブジェクトをコピーしてプロパティ値の一部を変更する必要があります。 オブジェクトの破棄は参照によって動作するかオブジェクトをクローンしますか
this.state.errors = {}
)
authorFormIsValid =() => {
var formIsValid = true;
this.state.errors = {}; //clear any previous errors.
if (this.state.author.firstName.length < 3) {
this.state.errors.firstName = 'First name must be at least 3 characters.';
formIsValid = false;
}
if (this.state.author.lastName.length < 3) {
this.state.errors.lastName = 'Last name must be at least 3 characters.';
formIsValid = false;
}
this.setState({errors: this.state.errors});
return formIsValid;
};
変異している、私は、我々が使用できることを知っている:
A)
let errors={...this.state.errors};
b)またはObject.assign
let errors=Object.assign({},this.state.errors);
しかし、時には、私はそれがこのように使用されobject destructuring
にいくつかの例を思えました:
authorFormIsValid =() => {
let formIsValid = true;
//Destructuring error and authors from this.state
let {errors, author} = this.state;
errors = {}; //clear any previous errors.
if (author.firstName.length < 3) {
errors.firstName = 'First name must be at least 3 characters.';
formIsValid = false;
}
if (author.lastName.length < 3) {
errors.lastName = 'Last name must be at least 3 characters.';
formIsValid = false;
}
this.setState({errors});
return formIsValid;
};
だから私の質問があり、それは上記の他の2つの方法に相当object destructuring
のですか?つまり、単純なobject destructuring
を使用して状態を直接変更することは避けますか?
だから、オブジェクトスプレッド演算子またはObject.assignのどちらかを使用することに固執する必要がありますね。 – eddy
はい、私はあなたがreduxのdocsもそれを推薦することを考慮して、スプレッドオペレータに行くことをお勧めします。この回答を見るhttps://stackoverflow.com/questions/43376849/using-object-assign-in-react-redux-is-a-good-practice/43376980#43376980 –