reactjs - 更新 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,
},
})
}>
解决方案
如果我理解正确,你需要这样的东西
case 'TRIGGER_AUDIO':
const audio = {...state.audio, ...action.payload};
return {
...state,
audio
};
推荐阅读
- c++ - Boost::JSON,解析字符串
- c# - 如何使用应用级身份验证/访问令牌访问 Sharepoint 文件?
- android - 吐司执行后,不就代表服务结束了吗?
- java - 春季升级 - 从 5.1.18.RELEASE 升级到 5.3.7 后未找到映射
- javascript - 我在阿多尼斯的路线和控制器通量中有一个奇怪的错误
- graphql - 需要一个对开发人员友好的 GraphQL 客户端代码生成器
- sql - 使用多个 for ins 旋转
- r - 允许 ggplot2::geom_bar 中重复的 x 轴分类组
- angular - angular - 从 @angular/router 生成 sitemap.xml
- android-studio - UIAutomatorViewer 未检测到字段和属性