如何解决如何使用调度以将数组推入reducer状态?
我的带有阵列的异径管:
const data = [
[
'23.9.2020','11:20','annual','Some Data',],[
'11.6.2021','13:45',]
const dataPushReducer = (state = data,action) => {
console.log(data)
switch (action.type) {
case 'Push':
return {
...state,data: [state.data.concat(action.newItem)],}
default:
return state
}
}
调度
const newItem = ['SOME DATA','SOME DATA','ANOTHER DATA']
<button onClick={()=> dispatch(push(newItem)}
调度不起作用-如何正确调度操作,以便添加新项并将其作为新数组显示在我的其他组件中(如reducer中所示)?
解决方法
尝试 const newItem = ['SOME DATA','SOME DATA','SOME DATA','SOME DATA','ANOTHER DATA']
,您已将默认状态创建为数组,而不是对象。 因此,您必须在化简器中返回一个数组。
如果您将状态保持为数组,请尝试以下操作:
case 'Push':
return [...state,action.newItem];
或者,如果您将状态变成对象:
const INITIAL_STATE = {
data: [
[
'23.9.2020','11:20','annual','Some Data',],[
'11.6.2021','13:45',]
}
const dataPushReducer = (state = INITIAL_STATE,action) => {
console.log(data)
switch (action.type) {
case 'Push':
return {
...state,data: [...state.data,action.newItem],}
default:
return state
}
}
PS:如果.concat()
函数接收一个数组作为参数,它将像这样提取数组的项:
var array = [["john",12],["mary",16]];
array.concat(["louis",15]);
// will results in [["john",16],"louis",15]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。