2

状況: いくつかの入力コンポーネントがありますが、ルート (react-router) によって異なるコンポーネントが表示されます。

問題: ルートを前後に切り替えたり、入力コンポーネントをドロップ/再追加したりするときに、ユーザーがすでに入力した入力値を保持したい。

これまでに2つの解決策を思いつきました:1)常にすべてをレンダリングしますが、表示されない場合はCSSで非表示にします(どういうわけかReactのアイデアを壊します)2)フラックスアーキテクチャにある種の「入力値ストア」を実装します(かなり精緻化する)

他のアイデアはありますか?もっと基本的なものが欠けていますか?

4

2 に答える 2

1

私は間違いなく、Flux のような 2 番目のアプローチを採用します。ただし、これがアプリケーションで必要な唯一のものである場合は、非常にシンプルに保つことができます。ほんの数行のコードで実装できるはずです。

その利点は、Flux アプローチが非常にうまくスケーリングできるため、アプリケーションが大きくなっても書き直す必要がないことです。

于 2015-04-20T06:00:12.323 に答える
0

動的セグメントを見てください

URL に動的セグメントがある場合、/users/123 から /users/456 への移行では、getInitialState、componentWillMount、componentWillUnmount、または componentDidMount は呼び出されません。React-Router-ガイド

次の例のような動的ルートを使用する必要があります。

<Route name="inbox" handler={Inbox}>
  <Route name="message" path=":messageId" handler={Message}/>
  <DefaultRoute handler={InboxStats}/>
</Route>

messageId (子コンポーネント) を変更しても、Inbox (親) コンポーネントは同じ状態のままです。

次のようになります。

<Route name="search" path="/search/:query?/:limit?/:offset?" handler={Search} />
于 2015-04-20T05:59:10.303 に答える