reactjs - setState 有效,但触发 onClick 时未更新 redux 状态
问题描述
嗨,所以我试图用 setState 更新我的 redux 状态,由于某种原因,它只会保留原始状态,当我有 onClick 触发 setState 时,它只会更新该本地状态,而不会更新 redux 状态和它只是保持原始状态。
`class SubMenu extends Component {
state={
displayMenu: ''
}
componentDidMount() {
this.props.menuLayout(this.state.displayMenu)
}
render() {
return (
<div className={`${display}`}>
Sub menu
<ul>
<li onClick={() => {
this.setState({
displayMenu: 'd-none'
})
}}>
Link1
</li>
</ul>
</div>
)
}
}`
`export default connect(mapStateToProps, { menuLayout})(SubMenu);`
这是我的动作创造者
`export const menuLayout = layout => {
return {
type: MENU_LAYOUT,
payload: layout
}
}`
这是我的减速机
`export default (state = "", action) => {
switch (action.type) {
case "MENU_LAYOUT":
return action.payload
default:
return state;
}
};`
解决方案
你的减速机应该是
export default (state = "", action) => {
switch (action.type) {
case "MENU_LAYOUT":
return Object.assign({}, state, {
displayMenu: action.payload
})
default:
return state;
}
};`
推荐阅读
- squid - Squid3 和 freeradius - basic_radius_auth:RADIUS 服务器没有响应
- kubernetes - prometheus-postgres-exporter 将指标添加到 bitnami/kube-prometheus
- python - 列表列表中的常见元素
- javascript - Vue 3 - 选项 API 与组合 API - 将外部文件加载到组件中
- c++ - Win32 Api 访问冲突
- jmeter - Jmeter循环计数 - StackOverflowError:null
- wpf - 将窗口的基本样式应用于继承的窗口
- java - 除以两个 Double 并获得整数部分的最佳方法
- kubernetes - 在 minikube 上运行的微服务应用程序正在运行,但未显示评论部分
- excel - 如何在excel中制作多个相似列的聚集条形图?