Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果项目位于javascript对象内,如何将其推入数组[state.lastValue.push不是函数]_Javascript_Reactjs - Fatal编程技术网

如果项目位于javascript对象内,如何将其推入数组[state.lastValue.push不是函数]

如果项目位于javascript对象内,如何将其推入数组[state.lastValue.push不是函数],javascript,reactjs,Javascript,Reactjs,我在reactjs中的reducer中将一些值更新为javascript对象,如下所示 这是更新之前的对象 state = { result:1, lastval: [] } 这就是我要更新它的方式 state = { ...state, result:state.result + 400, lastval: result.lastval.push(20) } 因此,这给了我一个错误,state.lastValue.push不是一个函数。但

我在
reactjs
中的
reducer
中将一些值更新为
javascript
对象,如下所示

这是更新之前的对象

state = {
  result:1,
  lastval: []
}
这就是我要更新它的方式

state = {
      ...state,
      result:state.result + 400,
      lastval: result.lastval.push(20)
    }
因此,这给了我一个错误,state.lastValue.push不是一个函数。但如果我像下面这样做就好了

state = {
          ...state,
          result:state.result + 400,
        };
        state.lastval.push(20);

这很好。原因是什么。

原因是,当你写:

state = {
   ...state,
   result:state.result + 400,
   lastval: result.lastval.push(20)
}
国家的最终地位将是:

state = {
   ...state,
   result:  some value
   lastval: 20
}
表示state.lasteval将成为一个数字,它将不是一个
数组
,因为a.push(1)不会返回最终数组,它将返回推入
数组
的项目

按如下方式编写以更新状态:

state = {
   ...state,
   result: state.result + 400,
   lastval: [...state.lastval, 20]
}
检查此代码段:

设a=[1,2];
设b=[];
b=a.推(3);
console.log('a',a);

console.log('b',b)原因是,当您编写时:

state = {
   ...state,
   result:state.result + 400,
   lastval: result.lastval.push(20)
}
国家的最终地位将是:

state = {
   ...state,
   result:  some value
   lastval: 20
}
表示state.lasteval将成为一个数字,它将不是一个
数组
,因为a.push(1)不会返回最终数组,它将返回推入
数组
的项目

按如下方式编写以更新状态:

state = {
   ...state,
   result: state.result + 400,
   lastval: [...state.lastval, 20]
}
检查此代码段:

设a=[1,2];
设b=[];
b=a.推(3);
console.log('a',a);
console.log('b',b)更新您的状态,如

state = {
  ...state,
  result:state.result + 400,
  lastval: [...state.lastval, 20]
}
lastval:[…state.lastval,20]
将对
state.lastval
数组中的所有内容进行解构,并将
20
添加到数组中,然后再次将其包装到数组中

有关
[…state.lastval]
更新您的状态的详细信息,请阅读

state = {
  ...state,
  result:state.result + 400,
  lastval: [...state.lastval, 20]
}
lastval:[…state.lastval,20]
将对
state.lastval
数组中的所有内容进行解构,并将
20
添加到数组中,然后再次将其包装到数组中

有关
[…state.lastval]
的详细信息,请阅读