私はこのようなReduxの状態を持っている:currentItemId
が設定されている場合Reduxとルーターでデータが見つからない場合、リダイレクトする正しい方法は何ですか?
{
currentItemId: 1,
items: [{id: 1, name: 'todo 1'}, ...]
}
、アプリはアイテムの詳細が表示されます。
まれに、currentItemがitems配列内の項目を表していないIDに設定されている場合、私は戻ってリダイレクトします。
私がリダイレクトを発行できるItemForm
のconnect
のように見える場所があります。
問題は、setState
を呼び出すことに不満があり、後でそれをスケジュールすることだけです。
また、項目が見つからない場合はItemForm
を表示しないようにしたいと考えています。
いただきました。このシナリオで行うには正しいこと?あなたは少しあなたが使用している方法をルーティングするかによって異なりますリダイレクトする方法
「componentWillMount」は、レンダリング前にトリガされているため、より優れています(完全なデータがなくてもレンダリングできない)。 onEnterを削除するとライフサイクルメソッドも使用されるように思われるhttps://github.com/ReactTraining/react-router/issues/3854 – hakunin
このHOCは適切なソリューションのように見えます。なぜなら、私は1)isRequiredをすべて削除する必要があるからです私の小道具2)は、データがなければ本当に触れてはいけないコンポーネントにcomponentWillMountとcomponentWillReceivePropsの両方を持っています。 https://medium.com/@francoisz/react-router-v4-unofficial-migration-guide-5a370b8905a#e85f – hakunin