首页 > 解决方案 > 更新 reducer 对象中的单个值而不删除先前的数据

问题描述

我的目标是pause在不删除任何其他数据的情况下更新我的舵机对象中的值。

这是我的舵机代码:

export const initialState = {
  audio: {
    sound: false,
    index: 0,
    name: '',
    image: '',
    username: '',
    pause: false,
  },
};

情况就是这样:

case 'TRIGGER_AUDIO':
      return {
        ...state,
        audio: action.payload,
      };

这是我访问这些audio值的方式:

  const [{ audio }, dispatch] = useStateValue();

这就是我按下按钮时尝试更新它的方式:

<TouchableOpacity
              onPress={() =>
                dispatch({
                  type: 'TRIGGER_AUDIO',
                  payload: {
                    ...state.audio,
                    pause: true,
                  },
                })
              }>

标签: reactjsreact-nativereact-redux

解决方案


如果我理解正确,你需要这样的东西

case 'TRIGGER_AUDIO':
      const audio = {...state.audio, ...action.payload};
      return {
        ...state,
        audio
      };

推荐阅读