【发布时间】:2019-08-15 01:43:33
【问题描述】:
我正在从组件调度一个动作,一切看起来都已正确链接,但是当我 console.log 组件道具中的状态时,它没有更新。
我尝试重新格式化我的代码并查看了多个示例,它看起来应该可以运行?当我从减速器登录时,它正在接收操作它只是没有更新状态。
const mapStateToProps = state => ({
todos: state
});
onSubmit(e) {
e.preventDefault();
let payload = this.state.content
this.props.dispatch(post_todo(payload));
console.log(this.props.todos)
this.setState({
content: ""
})
}
export default (
state = [],
action
) => {
switch (action.type) {
case POST_TODO:
console.log("got it")
console.log(action.payload)
console.log(state)
return [
...state,
action.payload
];
default:
return state;
}
};
export function post_todo (payload){
return {
type: POST_TODO,
payload
};
}
它应该将 props.todos 更新到正确的状态,但每次都显示一个空数组。
【问题讨论】:
-
如果您希望在
this.props.dispatch(post_todo(payload));之后的下一行中的console.log(this.props.todos)立即反映状态更改,那么它不会那样工作。您的组件必须经过一个更新循环。您应该会在下一次渲染调用中看到更新后的this.props.todos。
标签: javascript reactjs redux action