如何使用扩展运算符取消现有数组的新值?

use*_*080 2 javascript typescript ecmascript-6

我正在尝试unshift使用扩展运算符方法使用现有数组的数组值。得到错误。任何人都可以帮助我获得正确的方法吗?

这是我的代码:

uploadedFiles : [...state.uploadedFiles.unshift( (<fileActions.UploadFileSuccess>action).payload ) ]
Run Code Online (Sandbox Code Playgroud)

得到一个错误:

The Number is not array type
Run Code Online (Sandbox Code Playgroud)

提前致谢。

Jon*_*lms 5

unshift改变数组并返回数组的新长度,它是一个数字,不能扩展。您的代码归结为:

 [...state.uploadFiles.length]
Run Code Online (Sandbox Code Playgroud)

现在要以不可变且正确的方式执行此操作,不要使用 unshift,只需在传播以前的版本之前将元素添加到数组中即可:

 [action.payload, ....state.uploadFiles]
Run Code Online (Sandbox Code Playgroud)