私は今、音楽アプリを React Native を用いて作成しています。聞きたいことは、hookについてなのでタグにはReactも入れました。
音楽アプリなので再生中の状態を、再生画面に描画(Play、Stopボタンなどのデザイン、次の曲に変化したetc)、途中で再生中の状態が変わったら、自動でデザインを変更できるようにしたいと考えています。
現状、再生中の状態はある関数を用いて、"その瞬間"の状態を得ることができます。戻り値はObjectです。
useEffect は依存配列が変化するたびに、中身が実行され、stateなどの値をsetすることができます。また、依存配列の指定の仕方によっては無限ループを引き起こしたりできます。
そこで私は、常に再生中の状態を管理したいので、useEffectを無限ループさせ、その中で音楽の再生中の状態を得ようかと考えました。しかしuseEffectを無限ループさせるのには抵抗があります。そこで依存配列に再生中の状態をいれることで、stateを用いてデザインを変更すればいいと思いましたが、その"再生中の状態を得る関数"をどこで実行すればよいのかわからなくなりました。再生画面はcomponent化しているので、上の階層から値を持ってくればよいのですが、上の階層においても常に再生中の状態を得るにはuseEffectなどを用いて関数を無限に実行し続ける必要があり、問題が無限ループすることになります。
もし再生中の状態を常に得るならば、useEffect等を用いて無限ループする必要があるのでしょうか?
それとも再生中の状態を常に得るという考えが間違いであり、再生中の状態が変化した(曲名など)時にeventを発火させるようにするのが良いのでしょうか?
useEffectの無限ループをしたときのメモリ消費の話などもして頂けると嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。