私が現在のコンポーネントを簡単にリロードするのに役立つデフォルトの動作/機能ではないことは知っていますが、リアルーターがURLパラメータを変更するときにコンポーネントをリロードしない
私のアプリケーションは製品を扱います。私はロードできる製品リストを持っています。アイテムをクリックすると、関連する製品の詳細が表示されます。そのページで
、私は同じコンポーネントをロード関連製品へのリンクを持っていますが、
<Route path="/products/:id/details" component={ProductDetail} />
にある他の製品の詳細、と私は私のcomponentWillMountでデータをフェッチM、と私は唯一の変更ならば、それはと思われますURLは新しいコンポーネントがマウントされていないので、何かを取得せずに常に古いデータを表示しています。
Reactを使用している初心者として、私はそのページで関係するコンポーネントをリロードするための助けやヒントを探しています。私は良い製品でProductDetailをリロードできることを意味します。
componentWillUpdate(ルータのURIが変更されていることがわかります:D)を見てみましたが、コンポーネントのリロードを行うためにsetStateを設定できません。良い練習)
どのように私はこの作品を作ることができますか?
編集:最初の回答によると、私はonEnterを使用する必要があります。私は今、関係コンポーネントに状態/小道具を渡す方法で立ち往生M:
const onEnterMethod =() => {
return fetch(URL)
.then(res => res.json())
.then(cmp => {
if (cmp.length === 1) {
// How to pass state/props to the next component ?
}
});
};
これはありがとう、私は探していると思うonEnter、私は私の質問を編集します;) – mfrachet
それはあなたが使用しているものに応じて、還元または流束。フラックスについてはわかりませんが、私はreduxの例を掲載します。 – OriolBG