web-dev-qa-db-ja.com

USEMEMOを使用したレンダリング中のReactフック状態を更新する

useMemoを使用してを設定して、状態の設定中の(== --- ==)、 レンダリング?

例:useMemosetStateから取られたレンダリング中に(= /// =)希少文書使用例

_function ScrollView({row}) {
  let [isScrolling, setIsScrolling] = useState(false);

  const lessCodeThanCheckingPrevRow = useMemo(
    () => {
      // Row changed since last render. Update isScrolling.
      setIsScrolling(true); // let's assume the simplest case where prevState isn't needed here
    },
    [row]
  );

  return `Scrolling down: ${isScrolling}`;
}
_

上記のようにコードと余分なvarsを劇的に縮小します。そうでなければ同等のチェックに使用されるのであれば、Docsは基本的な平等チェックを手動で行う必要がありますか?

8
ecoe

この動作のためにUseEffectフックを使用してください。 USEMEMOは、各レンダリングに必ずしも変更されない可能性がある値を保存するために使用されます。そのため、その値の無用な再計算を回避する

0
Foyarash