Javascript Redux状态正在更改,但使用mapStateToProps时未定义道具

Javascript Redux状态正在更改,但使用mapStateToProps时未定义道具,javascript,reactjs,react-router,redux,react-redux,Javascript,Reactjs,React Router,Redux,React Redux,我在我的应用程序中使用React-redux,我在使用connect(MapStateTrops,mapDispatchToProps)(组件)时遇到了这个问题,并且能够成功地使用映射的调度操作redux状态。使用开发工具,我看到状态已成功更改,但映射的道具在任何组件中都始终未定义 我正在尝试的示例组件: class DashboardPage extends React.Component { componentWillMount() { console.log(this.prop

我在我的应用程序中使用React-redux,我在使用
connect(MapStateTrops,mapDispatchToProps)(组件)
时遇到了这个问题,并且能够成功地使用映射的调度操作redux状态。使用开发工具,我看到状态已成功更改,但映射的道具在任何组件中都始终未定义

我正在尝试的示例组件:

class DashboardPage extends React.Component {
  componentWillMount() {
    console.log(this.props.idToken);
  }
  render() {
    return (
        <div>
            <div className="dashboard-container">
                <p>{this.props.idToken}</p>

                <button onClick={() =>  {this.props.logout()}}>
                    LOGOUT
                </button>
            <button onClick={() =>  {browserHistory.push('/app/play')}}>
                    PLAY
                </button>
            <button onClick={() =>  {this.props.setIsLoading(true)}}>
                    TEST
                </button>
            </div>
        </div>
    );
  }
}

const mapStateToProps = (state) => {
  return {
    idToken: state.idToken,
  };
};

export default connect(mapStateToProps, { logout, setIsLoading })(DashboardPage);
是否有任何关于路由的错误,导致
mapStateToProps
无法正确返回道具

提前谢谢你的帮助

编辑:我刚刚编辑了我的
MapStateTrops
,以查看状态是否通过:

const mapStateToProps = (state) => {
  console.log(state);
  return {
    idToken: state.idToken,
  };
};

并且日志输出是未定义的

我觉得您在更新状态时没有在reducer中添加以前的状态。例如,如果您的新状态是return{action.something},那么它可能是{…state,action.something}。我有这样的问题。我不是专家,还在工作和学习

你的地址在哪里?对不起,我现在编辑了它并添加了一个片段,虽然我很确定这应该是正确的,因为自从它工作以来,我没有在那里更改任何内容。你如何保持路由器和redux商店的同步?什么是
browserHistory
?我不确定它是否能解决问题,如果这能帮助我使用
react router redux
与这个config@valorl绑定,请分享你的reducer代码和完整的index.js文件。我看不出为什么react路由器会搞乱你的州。同意,这很可能是一个减速器问题
const appRoot = document.getElementById('app-root');

const store = createStore(reducers, compose(
    applyMiddleware(thunk),
    window.devToolsExtension ? window.devToolsExtension() : f => f
));

ReactDOM.render(
  <Provider store={store}>
    <Router history={browserHistory} routes={routes} />
  </Provider>
  , appRoot);
const mapStateToProps = (state) => {
  console.log(state);
  return {
    idToken: state.idToken,
  };
};