2

アプリケーションでreactjs、react-router、reduxを使用しています。私は非同期アクションを使用しています。以下は私のaction.jsコードです

  signUser(state,user) {
    return function (dispatch){
      return dispatch(requestSignUp());
    }
  }


export default function requestSignUp(){
 return {
   type: Actions.REQUEST,
   signUserReducer:{
    action: Actions.REQUEST
   }
  }
 }

以下は私のstore.jsコードです

const reducer = combineReducers(reducers);
let finalState = compose(applyMiddleware(thunk, logger()))(createStore)

export default function configureStore(initialState) {
  return finalState(reducer, initialState);
}

以下は私の reducer.js コードです

export default function signUserReducer(state = initialState, action) {

if (typeof state == 'undefined') {
    return state;
}

switch (action.type) {

    case Actions.REQUEST:
        return Object.assign({}, state, {
            action: action.signUserReducer.action
        });
    default:
        return state;
}
}

アクションをディスパッチするたびに、ブラウザーコンソールに次のエラーが表示されます

警告: [react-router] 「ルーター ルート」は変更できません。それは無視されます

これを「react-router-redux」で解決しようとしましたが、解決しません。

4

1 に答える 1

2

これが Redux 作成者からの回答です。彼はgithubに残しました。

最初のステップとして、エラー メッセージをもう一度調べることをお勧めします。これは偶然のエラーではありません。それは実際に何が起こったのかを物語っています。コンポーネントがpropRouterの新しい値を受け入れることができないと言ってい ます。routesこれは、ルート コンポーネントをレンダリングするたびに新しいルートを再作成することを意味します。アプリの存続期間中にルートを 1 回作成するのではなく、React Router がサポートしようとしているシナリオです。結論として、Router コンポーネントをレンダリングする場所を調べ、すべての render でルートを作成しないようにする必要があります

于 2016-08-03T05:53:17.270 に答える