Reactjs redux中的调度操作出现错误';[反应路由器]您无法更改<;路由器路由>;;它将被忽略
我正在我的应用程序中使用reactjs、ReactRouter和redux。我正在使用异步操作,下面是我的action.js代码Reactjs redux中的调度操作出现错误';[反应路由器]您无法更改<;路由器路由>;;它将被忽略,reactjs,react-router,react-redux,redux-thunk,Reactjs,React Router,React Redux,Redux Thunk,我正在我的应用程序中使用reactjs、ReactRouter和redux。我正在使用异步操作,下面是我的action.js代码 signUser(state,user) { return function (dispatch){ return dispatch(requestSignUp()); } } export default function requestSignUp(){ return { type: Actions.REQUEST,
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 redux”解决这个问题,但没有解决问题。这是redux创建者的答案,他继续说,我认为这很有意义 好的第一步是再次查看错误消息。它是 不是随机错误;它实际上告诉我们发生了什么。上面说
Router
组件无法接受routes
prop的新值。这意味着
每次渲染根时,都会重新创建新路由
组件,而不是在应用的生命周期中创建一次,
这是React路由器打算支持的场景。结论
您需要查看渲染路由器组件的位置,
并且确保不要在每个渲染上创建路由
你能把代码中定义路线的部分贴出来吗?问题很可能就在那里。@AbhishekJain:render(){const{store,history}=this.props return()}@AbhishekJain我已经实现了react-redux路由器,但每当我通过分派操作时,它都会出现同样的错误,看看这是否有帮助。这是react router的一个常见问题。@AbhishekJain:如何将道具传递给此常量路由..那么我们如何解决此问题:/@JamieHutber使
常量路由
在渲染外保持常量,并包含类似{routes}
,请参见上面的注释谢谢您回到我这里:D奇怪的是,我已经这样做了,这一定是我设置的其他方式。我将继续digyes,这在我的应用程序中帮助了我,@DennisDecene如果您需要帮助,请共享您的代码hand@vitr,我打开了另一个问题,与此相关的代码链接,请参阅