1. ホーム
  2. reactjs

[解決済み] Reactでグローバル変数を宣言する方法とは?

2022-03-06 13:15:15

質問

を初期化しました。 i18n 翻訳オブジェクトは、あるコンポーネント(アプリに最初にロードされるコンポーネント)において一度だけ使用されます。その同じオブジェクトは、他のすべてのコンポーネントで必要とされます。すべてのコンポーネントで再初期化するのは嫌です。どうすればいいでしょうか?ウィンドウスコープで使用できるようにしても、私はそれを render() というメソッドがあります。

これらの問題に対して、国際化に特化した解決策ではなく、一般的な解決策を提案してください。

どのように解決するのですか?

を使ってみてはいかがでしょうか。 コンテキスト ?

親コンポーネントのいずれかにグローバルなコンテキスト変数を宣言すると、この変数はコンポーネントツリー全体にわたって this.context.varname . を指定するだけです。 childContextTypesgetChildContext を指定することで、どのコンポーネントからでもこれを使用/変更することができます。 contextTypes を子コンポーネントに追加します。

ただし、docsに記載されているように、注意してください。

明確なコードを書くときにグローバル変数を避けるのが最善であるように、ほとんどの場合コンテキストの使用は避けるべきです。特に、タイピングを節約するために使用したり、明示的なプロップの代わりに使用したりする前に、よく考えてください。