我正在使用reactjs,react-router& 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;来解决这个问题,但它没有解决。
答案 0 :(得分:2)
这是Redux创作者的答案,他离开github,我认为,这很有意义
好的第一步是再次查看错误消息。它的 不是随机错误;它实际上告诉了发生了什么它说
Router
组件无法接受routes
道具的新值。这意味着 每次渲染根时都要重新创建新路由 组件,而不是在应用的生命周期中创建一次, 这是React Router打算支持的场景。结论 你需要调查你渲染路由器组件的位置, 并且确保您不会在每次渲染上创建路线。