4

使用事例:

ユーザーが購読した後、私は別のページに移動したいと思います。それは、ユーザーに電子メールを確認するように通知します。

  try {
    const request = yield call(subcribe, action.payload.data)
    yield put({ type: SUBSCRIBE_SUCCESS, payload: request.data })
    yield put(showNotification(NOTIFICATION_SUCCESS, 'Please check your email.'))
  } catch(e) {
    ...
  }

成功ページに移動する方法はありますか。つまり/subscribe-success、サーバーから成功の応答を受け取った後ですか?

4

1 に答える 1

5

サーバーから成功の応答を受け取った場合は、redux の状態を subsribeSuccess : true のようなものに変更する必要があります。コンポーネントの componentWillReceiveProps(nextProps) でこの状態を確認し、browserHistory.push('subscribe-success') を実行する機会が得られるようにします。

例を次に示します。

レデューサーが SUBSCRIBE_SUCCESS アクション タイプを取得したときに、レデューサーから redux 状態を {...state, subscribeSuccess : true} に変更したと仮定します。

反応コンポーネントで:

componentWillReceiveProps(nextProps){
  if(myConnectedReduxState.subscribeSuccess){
    browserHistory.push('subscribe-success');
  }
}

私が理解している限り、あなたの問題は佐賀とは関係ありません。このロジックは、react-redux プロジェクトのどこにでも実装できます。

于 2016-09-19T11:53:54.357 に答える