問題タブ [use-context]
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.
javascript - React でフックを使用する e.preventDefault があるにもかかわらず、onClick イベントが 2 回トリガーされるのはなぜですか?
更新: 問題はレデューサーに直接あり、onClick 関数や deleteLastItem 関数とは関係ありません。これをconsole.logsでテストしましたが、明らかに2回繰り返されるのは、レデューサーに直接あるものだけです。
フック useReducer と useContext を同時にテストしていたのは、それらが非常にうまく連携できると思ったからですが、どうやら、関数を onClick 関数に設定すると、2 回トリガーされます。配列から最後のアイテムを削除しているため、1 つではなく 2 つのアイテムが削除されます。
コンテキストとレデューサー フックが格納されているファイルは次のとおりです。
ご覧のとおり、console.log("hey")
, は、それが 2 回実行されていることを示しています (画面内のアイテムが一度に 2 回消去されていることを除いて)。
コンテキストが取り込まれ、問題が発生するコンポーネントは次のとおりです。
そして最後に、ここに app.js があります。役に立つとは思いませんが、念のため: