リストエントリを追加/編集するためのページに移動するLink
があるとします。
Link
自体をクリックしたときにReduxアクションをディスパッチして、実際にそのページにリダイレクトされる前に、まずReduxストアを更新する方法を教えてください。
例:[編集]ボタンをクリックします->アクションがディスパッチされます->ストアが更新されます、_{'state': 'edit-mode'}
_->リダイレクトに進みます。
それとも、私がやろうとしていることを達成するために別の方法を考えていますか?
多分コンポーネントがマウントされたとき、私は特定の条件に基づいてstateToEdit
のようなアクションを実行しますか?もしそうなら、私にあなたのやり方を見せてください。ありがとう
PS:すべての追加/編集/削除に1つのコンポーネントのみを使用しています。したがって、state
に基づいてレンダリングする方法を考えています。それが_edit-mode
_であっても_delete-mode
_などであっても同様です。
この問題に対処するには、いくつかの方法があります。
Link
を使用する代わりに、onClick
関数でbrowserHistory.Push(path)
を利用してみてください。onClick
内では、アクションをdispatch
してから、Push
を新しい場所に移動できます。redux-thunk
_を実装することです。おつり。redux-thunk
_が実際に提供するものの単純さを強調する素晴らしい応答を持っています: Redux Thunkミドルウェアなしで複数のアクションをディスパッチできますか?incrementTwice
関数で、次のようにdispatch(increment)
呼び出しの1つをbrowserHistory.Push(action.path)
の呼び出しに置き換えるだけを想像してください。Reduxサンクアクション
_export const dispatchThenRoute = (myAction, myPath) => {
return (dispatch) => {
dispatch(myAction)
browserHistory.Push(myPath);
}
};
_