問題タブ [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.
javascript - 子コンポーネント内から React Context を更新するには?
以下のようなコンテキストで言語設定があります
私のアプリケーションコードは以下のようなものになります
マイページには言語を切り替えるコンポーネントがあります
LanguageSwitcher
このMyPage
場合、以下のようにコンテキストを更新して言語を「jp」に変更する必要があります
LanguageSwitcher コンポーネント内からコンテキストを更新するにはどうすればよいですか?
reactjs - React Context API プロバイダーがアプリの 2 番目の場所で更新されない
複数のタブに分かれるフォームを作成しています。React Context API を使用して、フォーム入力の状態を取得し、プロバイダーで状態を設定しています。これは、フォームの入力場所にある私のコンシューマーでうまくいきます。ただし、フォームの最後のタブには、すべてのステップでフォームの入力を確認できるビューもあります。その場所のプロバイダーは、React Dev Tools のデフォルトの状態値のみを表示するため、コンシューマーを更新できません。プロバイダーの 2 番目のインスタンス化の状態が更新されず、小道具としてレビュー セクションに渡されない理由がわかりません。をプロバイダーからエクスポートcreateContext()
し、レビュー セクション コンシューマーとフォーム入力セクション コンシューマーにインポートしています。
いくつかのコードを次に示します。
プロバイダー:
フォーム入力コンシューマー:
レビュー セクションの利用者
getContext
ContextTypes を渡す単純な HOC です。
BasicInfoForm
はフォーム内のタブに存在するフォームの子コンポーネントですが、プロバイダーはそこに直接行くので、タブは関係ないと思います。
私の期待は、が渡された関数を呼び出すBasicInfoProvider
ときにBasicInfoForm
更新され、その更新が使用されているすべての場所に反映されることですが、コンポーネントBasicInfoProvider
に使用されている場合はそうではありませんFinalReview