0

反応アプリのレイアウト コンポーネントを作成し、ルートの変更時にサイド バーとナビゲーション バーを動的に更新したいと考えました。

  1. redux を使用できますが、必要がない場合でも、すべての状態とメソッドをいつでも利用できます。

  2. 新しい反応コンテキストも見ましたが、redux と同じ問題があります。

  3. 反応ルーターを使用すると、新しいサイドバーまたはナビゲーション バーをマウントしているように見えます。

新しい状態とメソッドをレイアウト コンポーネントに動的に提供する方法はありますか?
(状態を別のもの、または複数の新しい状態に置き換えます: リンゴ --> オレンジ)

React ルーターは私の最良の選択肢のように見えますが、新しいルートごとにサイドバーとナビゲーション バーを含めるだけで同じことができます。

リンクを動的に追加することは問題ではありません。新しくマウントされたコンポーネントに影響を与えるボタンを追加することは問題です。ナビゲーション バーとサイド バーは親コンポーネントに存在するため、すべての状態とメソッドを認識する必要があります。

ありがとう、

編集:

例:


- ホーム - 概要 - お問い合わせ

リンクで問題ありません。switchComponet メソッドを使用して、リンク コンポーネントを他のコンポーネントに置き換えるだけです。


停止 - スピードアップ - ヘルプ

これらはすべてボタンです。次に、それらのメソッドと状態を Layout コンポーネントに追加する必要があります。アプリが成長すると、より多くの状態とメソッドを最上位コンポーネントに追加する必要があります。それらすべてを redux に配置できますが、すべての状態とメソッドは常に利用可能です。redux についてはおそらく間違った印象を持っています。多くのリソースを消費するかもしれないと思っていますが、間違っているかもしれません。

4

1 に答える 1

0

My guess is that by "state and methods" you mean the mapStateToProps and mapDispatchToProps arguments of the react-redux connect function in your layout component.

If that's the case then you have reasons to be concerned about putting the logic of all possible content of your layout in there.

I think your problem is that you're assuming that you have to connect only the top container to redux when it's not the case.

You can connect your layout component to deal with the nav and side bar and at the same time having components nested in your layout component and connected to redux with their own store keys (part of the store state) and actions.

This way you don't need to add all store states and action needed for each layout content. Each layout content will stay close to its logic.

That's actually one of the purposes of redux.

于 2018-09-18T00:12:31.180 に答える