gpt4 book ai didi

javascript - 为什么不调用 mapStateToProps

转载 作者:行者123 更新时间:2023-11-29 23:27:33 26 4
gpt4 key购买 nike

我正在用头撞墙。我已经使用 React+Redux 顺利运行了一段时间,然后我使用 Chrome 删除了我的 localStorage,一切都变得一团糟。现在我无法让 mapStateToProps 调用,所以即使 reducers 获得正确的状态,我也没有得到任何 Prop 。

我已经通读了 Redux 文档中的故障排除部分,了解未调用 mapStateToProps,但它似乎主要归结为不要改变您的状态。为了确保我不是,我已经将我的 reducer 代码减少到几乎没有以排除可能性。在这里:

const mapStateToProps = (state, ownProps) => {
return {
user: state.rootReducer.user
}
}

export const rootReducer = (state = {}, action) => {
switch (action.type) {
case 'SET_CURRENT_USER':
return Object.assign({}, state, {user: action.user});
break;
default:
return state
}
return state
}

const store = createStore(
reducer,
applyMiddleware(middleware),
autoRehydrate()
)

const reducer = combineReducers({
rootReducer: rootReducer,
routing: routerReducer,}
)

使用@connect(mapStateToProps, mapDispatchToProps) 连接我的一个测试组件。过去我对此没有遇到任何问题,我用更标准的非装饰器实现对其进行了几次测试,但没有成功。

任何想法都会很有帮助。

这是精简的组件:

@connect(mapStateToProps, mapDispatchToProps)
export class TestComponent extends React.Component {
constructor(props) {
super(props);
autobind(this);
}

componentDidMount() {
store.dispatch(setCurrentUser({id:1}))
}

render() {
return (
<div>

</div>
)
}
}
export class TestPage extends React.Component {
constructor(props) {
super(props);
autobind(this);

}

render() {
return (
<div>
<TestComponent />
</div>
)
}


}

最佳答案

试试这个:

const mapStateToProps = (state, ownProps) => {return {user: state.user}}

希望对您有所帮助!

关于javascript - 为什么不调用 mapStateToProps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48533650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com