我有一个React.js应用程序,我在其中使用Redux
。我有一个操作,应该在减速器的状态下设置一个值,但它似乎不起作用。我使用console.log()
在reducer中显示动作的action.payload
,它似乎已被接收,但当我在需要它的组件中调用reducer时,它不会显示。
这是我的代码:
行动:
export const setModeWarning = (warning) => ({
type: 'MQTT:SET_MODE_WARNING',
payload: warning
});
减速器:
case 'MQTT:SET_MODE_WARNING':
console.log("ENTERED")
console.log(action.payload)
console.log(initialState.modeWarning)
return {
...state,
modeWarning:action.payload.warning,
}
组件:
const {modeWarning} = this.props
console.log("MODE WARNING")
console.log(modeWarning)
const mapStateToProps = (state) => {
return {
reconnect: state.reconnect,
battery : state.battery,
mode: state.mode,
modeMessage:state.modeMessage,
messageWarning:state.messageWarning,
updateMessage:state.updateMessage,
modeWarning:state.modeWarning
}
}
export default connect(mapStateToProps,null)(InformationScreen)
确保动作有效载荷与减速器有效载荷匹配
动作payload: warning
减速器modeWarning: action.payload // no .warning
或
动作payload: { warning }
减速器modeWarning: action.payload.warning