問題タブ [use-reducer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1111 参照

javascript - レデューサーを使用して useEffect() の無限ループに反応する

再生する必要がuseEffect()あるメッセージ サウンドがある場合はトリガー ブール値の状態をチェックし、再生後、そのアクティブなメッセージ トリガーを状態で false に設定します。

ただし、useEffect() は無限ループに入り、アプリがクラッシュします。おそらく、状態を変更すると再びトリガーされるためです(そして再び...)

通常、useState を使用すると、次のような方法で簡単に修正できます。useEffect(() => {logic}, [trigger])

私の場合、useState は使用していませんが、リデューサーを使用して状態を変更しています。

Edit: The weird thing is, the reducer sometimes works to modify state, and sometimes it does not. It will execute without errors but the state remains unchanged.

コメントしたコードをお見せしましょう:

ご覧のとおり、useState は使用しませんが、代わりにレデューサーを使用します。次のようなものに関連することがよくある解決策は、私が知る限り、私の解決策ではありません。

編集: useEffect で使用された場合、リデューサーは状態を変更しないように見えるため、そのコードを投稿させてください。

0 投票する
1 に答える
50 参照

reactjs - useState から useReducer に変更する方法

次のコードを useReducer に変換しようとしていますが、理解できないことはほとんどありません。次のコードでは、handleClick は状態を更新し、さらなるアクションのために他の関数を呼び出します。useReducer では、状態を更新できますが、他の関数を呼び出す方法。

useReducer を使用

0 投票する
1 に答える
330 参照

reactjs - 単一のボタンの useReducer フックのレデューサー機能で異なるスイッチ ケースを管理することは可能ですか?

「オフ、弱、中、強の 4 つのレベルがあるライトで「部屋」を作成し、ボタンを押すたびにレベルを変更します。ライトをオフにする 2 つ目のボタンを作成します。」という質問があります。 状態を切り替えてライトをオフにするために別のボタンを使用する必要があるように、1 つのボタンを押すことで低、中、高の 3 つのレベルを管理する必要があると想定しています。しかし、私の知識は、個別のボタンでレデューサーの各スイッチ ケースを管理することに限られています。