下記の記事の2. Compare Incoming Props to Previous Props When Computing Controlled Values
の部分に関する質問です。
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix-for-getderivedstatefromprops
static getDerivedStateFromProps(props, state) { const prevProps = state.prevProps || {}; // Compare the incoming prop to previous prop const controlledValue = prevProps.value !== props.value ? props.value : state.controlledValue; return { // Store the previous props in state prevProps: props, controlledValue, }; }
このようなコードが書かれていますが、最後のところの、
return { // Store the previous props in state prevProps: props, controlledValue, };
はなぜ、prevProps: props,とcontrolledValue,が2段で書かれていても問題なく動くのでしょうか。
このライフサイクルの仕様を見ると、
return のところでは
return { a: A b: B }
のように入れる箱に対して、実際の値が1対1でなければならないように見えます。
しかし、controlledValueのところでは、controlledValueに対する箱が見当たりません。
ReactやRedux全般でこの記法(1対1になっていない)がある気がするのですが、これはどういうことなのでしょうか。(あくまでもある気がするだけです)
何卒よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 03:55