問題タブ [react-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.

0 投票する
4 に答える
130783 参照

javascript - 子コンポーネント内から React Context を更新するには?

以下のようなコンテキストで言語設定があります

私のアプリケーションコードは以下のようなものになります

マイページには言語を切り替えるコンポーネントがあります

LanguageSwitcher このMyPage場合、以下のようにコンテキストを更新して言語を「jp」に変更する必要があります

LanguageSwitcher コンポーネント内からコンテキストを更新するにはどうすればよいですか?

0 投票する
0 に答える
1005 参照

reactjs - React Context API プロバイダーがアプリの 2 番目の場所で更新されない

複数のタブに分かれるフォームを作成しています。React Context API を使用して、フォーム入力の状態を取得し、プロバイダーで状態を設定しています。これは、フォームの入力場所にある私のコンシューマーでうまくいきます。ただし、フォームの最後のタブには、すべてのステップでフォームの入力を確認できるビューもあります。その場所のプロバイダーは、React Dev Tools のデフォルトの状態値のみを表示するため、コンシューマーを更新できません。プロバイダーの 2 番目のインスタンス化の状態が更新されず、小道具としてレビュー セクションに渡されない理由がわかりません。をプロバイダーからエクスポートcreateContext()し、レビュー セクション コンシューマーとフォーム入力セクション コンシューマーにインポートしています。
いくつかのコードを次に示します。

プロバイダー:

フォーム入力コンシューマー:

レビュー セクションの利用者

getContextContextTypes を渡す単純な HOC です。 BasicInfoFormはフォーム内のタブに存在するフォームの子コンポーネントですが、プロバイダーはそこに直接行くので、タブは関係ないと思います。

私の期待は、が渡された関数を呼び出すBasicInfoProviderときにBasicInfoForm更新され、その更新が使用されているすべての場所に反映されることですが、コンポーネントBasicInfoProviderに使用されている場合はそうではありませんFinalReview