ホームページ  >  に質問  >  本文

機能コンポーネントの反応 - 状態を更新すると、ページ全体が再レンダリングされます。

<p>この度は大変お世話になり、誠にありがとうございます。 <code>loadDataFunction()</code> の <code>percentageDone</code> 状態を更新すると、実際には更新されるはずなのに <code>RenderData1Component</code> が更新される理由がわかりません。こんなことにはならないよ。 data1が変更された場合にのみ更新するべきではないでしょうか? </p> <p>このようなコードがあります。 </p> <pre class="brush:php;toolbar:false;">const [loading, setLoading] = useState(true); const [data1, setData1] = useState(null); const [percentageDone, setPercentageDone] = useState(0); LoadDataFunction(){ // 1 つの Promise で複数の API (10 個あるとしましょう) を呼び出し、各 API が完了したときに setPercentageDone() を呼び出します。 } useEffect( () => { ロードデータ関数() },[]) useEffect( () => { if (条件が満たされた場合) { LoadDataFunction() // 最新データを再読み込みします } }、 [状態]) 戻る ( 読み込み中?パーセント完了 : <RenderData1Component データ={data1}> )</pre> <p> <code>percentageDone< ではなく、<code>data1</code> 状態が更新されたときに <code><RenderData1Component data={data1}></code> を更新したいだけです。 /コード>。ただし、<code>setPercentageDone()</code> を更新すると、<code><RenderData1Component data={data1}></code> の再レンダリングもトリガーされます。 </p>
P粉180844619P粉180844619401日前353

全員に返信(1)返信します

  • P粉904405941

    P粉9044059412023-08-18 11:26:59

    よくわかりませんが、これが役に立つかもしれません。

    リーリー

    複数の条件を指定している可能性があり、問題が発生する可能性があります。こちらもぜひチェックしてみてください。

    返事
    0
  • キャンセル返事