ここから本文です

Reactについてご教授いただきたいです。

drr********さん

2020/7/1300:00:03

Reactについてご教授いただきたいです。

公式サイトのフックについてですが、
以下のページで、
https://ja.reactjs.org/docs/hooks-reference.html#usestate

function Counter({initialCount}) {
const [count, setCount] = useState(initialCount);
return (
<>
Count: {count}
<button onClick={() => setCount(initialCount)}>Reset</button>
<button onClick={() => setCount(prevCount => prevCount - 1)}>-</button>
<button onClick={() => setCount(prevCount => prevCount + 1)}>+</button>
</>
);
}

このソースは上から、countのリセット、現在の値に-1する、現在の値に+1する
という三つのボタンがあると思いますが、
prevCountは「前の値」という意味になります。現在の値に変更を加えるという意味で
currentCountとかではないのか…と思うのですが、理解が間違っていますでしょうか?


そしてその下の補足にある、
「クラスコンポーネントの setState メソッドとは異なり、useState は自動的な更新オブジェクトのマージを行いません。」の意味が分かりません。
フックを使わない場合のsetStateメソッドとの違いを説明しているのだと思うのですが、
何が違うのか分かりません…。

知識不足で申し訳ありませんが、
よろしくお願いいたします。

閲覧数:
7
回答数:
1

違反報告

回答

1〜1件/1件中

nic********さん

2020/7/1301:59:17

前者はその理解でいい。普通はこの場合prevと考えるが、ものの見方の違いに過ぎない。currentでは、と言われたら確かにその通りでもあるしな。

オリジナルのsetStateは、例えばstateが{a:1,b:10}の状態でsetState({a:5})とすると、現在のstateとマージして{a:5,b:10}としてくれる。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる