LoginSignup
0
0

【React】子に更新後のデータが反映されない😢

Last updated at Posted at 2023-05-23

:older_man_tone1: 現象

リストに表示されたデータをクリックすると、ポップアップ(子コンポーネント)が表示され、ポップアップ(子コンポーネント)のフォームにクリックされたデータが反映されるという処理を行いたかったのですが、クリックしてもクリックしてもデータが渡されている様子がなく、再レンダリングしてくれない現象が発生しました。

上記現象が起きたコンポーネントの構成は、

  • 一覧ページ(親)から登録用ポップアップコンポーネント(子)を呼んでいる
  • 一覧ページ(親)からリスト表示コンポーネント(子)を呼んでいる
  • 登録用ポップアップコンポーネント(子)を詳細表示、編集用のポップアップとしても使用している
  • リスト表示コンポーネント(子)をクリックすると、登録用ポップアップコンポーネント(子)が表示され選択したデータの詳細が表示される

:bellhop: 解決策

useEffect()の第2引数を[]にしていましたが、[更新したいデータ](厳密に言えば、親から渡ってきたデータ)に変更したらちゃんと再描画してくれるようになりました!

useEffect(() => {
    console.log('レンダリングされたよ!!');
    console.log('data: ', data);
    setSelectType(data);
- }, [])
+ }, [data])
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0