ホームページ  >  に質問  >  本文

ナビゲーション バー コンポーネントが状態の変化時に再レンダリングされない

ショッピングカートを作成しようとしています。コンテキストを作成し、カートの増分ボタンと減分ボタンを押したときに状態を値として渡しました。アイテム数は変化しますが、カート内のナビゲーション バー コンポーネントで同じコンテキストを使用すると、アイテムの総数は変わりません。 。以下にコードスニペットを添付します

ここでコンテキストを作成します

リーリー

以下は私の useContext プロバイダーです。

リーリー リーリー

ステータスの値は useReducer から取得され、すべてが正常に更新されています

これは、ナビゲーション バーで useContext フックを使用してショッピング カート内のアイテムの総数を取得する方法です。

リーリー

しかし、ステータスが変化するたびに、ナビゲーション バーにカート内のアイテムの更新された総数が再表示されません。助けてください。

これは私の useReducer 関数とそれが更新するすべてのものです。 console.log() を実行して機能を確認しました。 state.totalItems を含め、返されるものはすべて問題ありません。

ああああ

P粉037880905P粉037880905429日前464

全員に返信(1)返信します

  • P粉348915572

    P粉3489155722023-09-08 09:44:53

    useReducer を使用すると、現在の状態が返されます。あなたに関する限り、国家はオブジェクトです。したがって、totalItems をその状態オブジェクトから直接取得できます。例えば:### リーリー このように、

    totalItems

    は状態オブジェクトから直接取得され、必要なときにどこでも使用できます。

    返事
    0
  • キャンセル返事