簡體   English   中英

如何使用帶有擴展運算符的現有數組來取消新值?

[英]How to unshift new value with existing array with spread operator?

我試圖通過使用擴展運算符方法unshift現有數組的數組值。 得到錯誤。 任何人幫助我得到正確的方法?

這是我的代碼:

uploadedFiles : [...state.uploadedFiles.unshift( (<fileActions.UploadFileSuccess>action).payload ) ]

得到錯誤:

The Number is not array type

提前致謝。

Array#unshift返回Array#unshift的新長度。

你只需要拿走物品而不擴散。

uploadedFiles: [(<fileActions.UploadFileSuccess>action).payload, ...state.uploadedFiles]

如果你喜歡更新state.uploadedFiles ,你可以unshift提前。

state.uploadedFiles.unshift((<fileActions.UploadFileSuccess>action).payload);

uploadedFiles: [...state.uploadedFiles]

unshift改變數組並返回數組的新長度,這是一個數字,並且不能傳播。 您的代碼歸結為:

 [...state.uploadFiles.length]

現在以不可變和正確的方式執行此操作,不要使用unshift,只需在傳播先前版本之前將元素添加到數組:

 [action.payload, ....state.uploadFiles]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM