210322開発ログ(105日目)-反応状態を正しく使用
Reactのクラスでstateを使用する場合は、次の3点に注意してください。
1.ステータス値を直接変更することはできません。(setState関数を使用)
stateを変更すると、変更値が反映されますが、構成部品は再レンダリングされません.つまり、これは正しい使い方ではありません.
// Wrong
this.state.comment = 'Hello';
逆にsetState()関数を使用します.// Correct
this.setState({comment: 'Hello'});
2.ステータス更新は非同期です。
setState()を使用する場合、この関数はすぐに値を更新しなくてもよい.△どうして前の任務がこんなに重いのですか.
そのため、下図のように予期せぬ値が出る場合があります.
// Wrong
this.setState({
counter: this.state.counter + this.props.increment,
});
したがって、以下に示すように、必要な時点の値を正しく受け入れるには、パラメータとして関数を使用する必要があります.// Correct
this.setState((state, props) => ({
counter: state.counter + props.increment
}));
3.stateの更新マージ?(stateに複数の変数がある場合は、個別に更新できます)
下図に示すように、stateには複数の独立変数があります.また、これらの状態の変数を個別に更新することもできます.
constructor(props) {
super(props);
this.state = {
posts: [],
comments: []
};
}
上記の状態が存在する場合、各状態の変数は、以下のように個別のsetState()関数を用いて独立して更新することができる. componentDidMount() {
fetchPosts().then(response => {
this.setState({
posts: response.posts
});
});
fetchComments().then(response => {
this.setState({
comments: response.comments
});
});
}
ソース:React公式ページReference
この問題について(210322開発ログ(105日目)-反応状態を正しく使用), 我々は、より多くの情報をここで見つけました https://velog.io/@gojaegaebal/210322-개발일지105일차-React-State-올바르게-사용하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol