redux中的调度操作会出现错误&#39; [react-router]您无法更改<router routes =“”>;它会被忽略

时间:2016-04-06 09:49:08

标签: reactjs react-router react-redux redux-thunk

我正在使用reactjs,react-router&amp; redux在我的应用程序中。我使用异步操作,以下是我的action.js代码

<script>
    var x = document.getElementsByClassName("link.auto_open");
    x.setAttribute("href", "http://newlink.com/");
    x.innerHTML("Need inspiration?");
</script>

以下是我的store.js代码

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


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

以下是我的reducer.js代码

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

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

现在,每当我调度某个操作时,我的浏览器控制台上都会显示错误

  

警告:[react-router]你不能改变路由器路由&#39 ;;它将被忽略

我尝试使用&#39; react-router-redux&#39;来解决这个问题,但它没有解决。

1 个答案:

答案 0 :(得分:2)

这是Redux创作者的答案,他离开github,我认为,这很有意义

  

好的第一步是再次查看错误消息。它的   不是随机错误;它实际上告诉了发生了什么它说   Router组件无法接受routes道具的新值​​。这意味着   每次渲染根时都要重新创建新路由   组件,而不是在应用的生命周期中创建一次,   这是React Router打算支持的场景。结论   你需要调查你渲染路由器组件的位置,   并且确保您不会在每次渲染上创建路线