機能コンポーネントの反応 - 状態を更新すると、ページ全体が再レンダリングされます。
P粉180844619
2023-08-17 14:19:48
<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>
よくわかりませんが、これが役に立つかもしれません。
リーリー複数の条件を指定している可能性があり、問題が発生する可能性があります。こちらもぜひチェックしてみてください。