0

我有一个使用 React.js 的应用程序Redux。我有一个动作应该在减速器的状态下设置一个值,但它似乎不起作用。我曾经在减速器console.log()中显示action.payload动作的,它似乎已被接收,但是当我在需要它的组件中调用减速器时,它没有显示。

这是我的代码:

行动:

   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)
4

1 回答 1

1

确保 action 有效负载与 reducer 有效负载匹配

行动payload: warning

减速器modeWarning: action.payload // no .warning

或者

行动payload: { warning }

减速器modeWarning: action.payload.warning

于 2021-06-30T15:44:14.230 回答