2017-02-28 12 views
0

私は?"type=specificType"パラメーターを取るコンテナーコンポーネントを持っています。 Linkを介してそのパラメータが変更されると、データの別のサブセットで再レンダリングします。照会パラメーターが変更された場合、リアクタールータ - render()は起動しません

どうすればこの問題を処理することをお勧めしますか?
例: ページのリンク - すべて|フィッシュ| BIRDS | MAMMALS

ルートはhttp://baseURL/animalsで、すべての動物をレンダリングします。

このリンクが選択されている場合<Link to="/animals?type=birds" />私はBIRDSである動物のサブセットだけでページを再レンダリングしたいが、この変更では何も引き起こされない。

これを行う方法についてのご意見はありますか?

ありがとうございます!代わりにあなたがButtonを置くことができるとonClickハンドラであなたは再レンダリングトリガするthis.forceUpdate()またはthis.setState(this.state)を呼び出し、その後、あなたがいつも使って、ルート変更を聞くことができreact-router

答えて

0

私はこれまで考えなかったとは思えませんが、答えはとてもシンプルでした。私はフィルタリンクを持つコンポーネントにハンドラを渡しました。任意のリンクが選択されたとき、「更新」メソッドは単にデータを調整し、そこからrender()メソッドを呼び出しました。

ありがとうございます。

0

browserHistory.listen()

は、基本的にI 'は変数に配置されrouteListener 'を呼び出して' componentWillMount() 'で呼び出します。そして、私が呼びたいメソッド 'handleRouteChange()'を実行します。

そして、 'componentWillUnMount()'の中でrouteListener()を呼び出すことによって、リスナーを停止させてください。

​​

これがあなたの問題を解決することを望みます。幸運

0

を使用して手動でリダイレクトできLink

関連する問題