我正在使用React Native构建一个应用程序,并且试图录制音频。我想将一个对象传递给我的动作,然后传递给我的减速器,以更新状态。
在我叫动作的屏幕上:
this.props.recordAudio({ stoppedRecording: true, recording: false, paused: false });
操作:
export const recordAudio = (change) => {
return {
type: AUDIO,
payload: change
};
};
减速器:
const INITIAL_STATE = {
audio: {
recording: false,
paused: false,
stoppedRecording: false,
}
}
case AUDIO:
return {
...state,
audio: {
...state.audio,
[action.payload]
}
}
我收到一个错误:意外令牌(致命)。我也试过不带括号。
我在音频中还有其他键,通过直接传递键/值而不是对所有键/键进行单独操作,更容易更新所有键。有正确的方法吗?
答案 0 :(得分:1)
case audio:
return {
...state,
audio: {
...state.audio,
[action.payload]
}
}
答案 1 :(得分:0)
您应该删除方括号
case AUDIO:
return {
...state,
audio: {
...state.audio,
...action.payload
}
}
答案 2 :(得分:0)
您应该传播Object action.payload,如:
case AUDIO:
return {
...state,
audio: {
...state.audio,
...action.payload
}
}