第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

TypeError:無(wú)法分配給打字稿中對(duì)象“[object Array]”的只讀屬性“0”

TypeError:無(wú)法分配給打字稿中對(duì)象“[object Array]”的只讀屬性“0”

MMTTMM 2023-08-24 17:19:31
我正在研究 Angular 8。我有一個(gè)顯示表格的頁(yè)面。taskList該表顯示來(lái)自組件獲取的對(duì)象數(shù)組的數(shù)據(jù)@Input()。我對(duì)該表的列有排序功能。我在每一行上還有一個(gè)刪除選項(xiàng)。當(dāng)我單擊刪除選項(xiàng)時(shí),它會(huì)調(diào)用 api 來(lái)刪除該行,然后再次調(diào)用來(lái)獲取數(shù)組tasklist。這是同樣的效果  @Effect()  DeleteTask$: Observable<Action> = this.actions$.pipe(    ofType(importActions.DELETE_TASK),    switchMap(params =>      this.globalService        .deleteTask(params)        .mergeMap(deleteSuccess => {          return from([            new importActions.DeleteTaskSuccess(deleteSuccess),            new importActions.LoadTaskList(),          ]);        })        .catch((error, caught) => {          return Observable.of(new GlobalError(error));        }),    ),  );我的問(wèn)題是,當(dāng)我加載第一頁(yè)時(shí),排序功能工作正常。但是,如果我刪除一行然后獲取刪除后的任務(wù)列表,則會(huì)收到以下錯(cuò)誤:ERROR Error: Uncaught (in promise): TypeError: Cannot assign to read only property '0' of object '[object Array]'TypeError: Cannot assign to read only property '0' of object '[object Array]'根據(jù)錯(cuò)誤消息,我的代碼中的以下函數(shù)給出了錯(cuò)誤  exchange(a, b) {    const temp = this.taskList[a];    this.taskList[a] = this.taskList[b]; //this line gives error    this.taskList[b] = temp;  }該函數(shù)是使用數(shù)組并對(duì)其進(jìn)行排序的排序代碼的一部分tasklist。流量為ngOnchanges(detects change is taskList array) calls --> this.taskChange('export_name', 'asc') based on some condition calls --> this. exchange(a, b)以下是我的 ngOnchanges 方法ngOnChanges(changes: SimpleChanges) {    if (this.taskList !== null && this.taskList !== undefined) {      this.taskChange('export_name', 'asc');    }  }以下是主要的排序方法  async taskChange(value, taskOrder) {    this.sortOrder = taskOrder;    this.selectedValue = value;    const expr = {      asc: (a, b) => a > b,      desc: (a, b) => a < b,    };我不確定當(dāng)數(shù)組第二次更改時(shí)到底是什么導(dǎo)致了此錯(cuò)誤。我嘗試了很多方法,但沒(méi)有一個(gè)有效。根據(jù)我在網(wǎng)上發(fā)現(xiàn)的情況,這可能會(huì)發(fā)生,因?yàn)槲艺趪L試改變作為 @Input 接收的數(shù)組。但上面的代碼會(huì)改變“tasklist”數(shù)組,但它會(huì)在初始頁(yè)面加載時(shí)起作用。并且僅在數(shù)組更改時(shí)停止工作。有人可以幫我嗎?
查看完整描述

3 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

在嘗試對(duì)數(shù)組進(jìn)行排序之前,請(qǐng)嘗試創(chuàng)建該數(shù)組的副本。就像使用展開(kāi)運(yùn)算符一樣。

arrayForSort = [...this.taskList]

然后排序后,您可以將其分配回該taskList字段


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

對(duì)于那些使用 React/Redux 遇到此錯(cuò)誤消息的人,可能是您試圖直接改變狀態(tài),這是不允許的。

就我而言,我有這樣的設(shè)置來(lái)獲取 thunk 中的狀態(tài)(簡(jiǎn)化):

import store from "./myStore";


const state = store.getState();

const getItems = state => state.user.items;

const items = getItems(state);

// ↓ this blew up as it was attempting to manipulate `state`

items.sort((a, b) => a.order - b.order);

這是通過(guò)以下方式為我解決的:


import store from "./myStore";


const state = store.getState();

const getItems = state => state.user.items;

// ↓ in my case items is an array, so I create a new array by spreading state here

const items = [...getItems(state)];

// ↓ which means we're not manipulating state, but just our `items` array alone

items.sort((a, b) => a.order - b.order);


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

我在做一個(gè)nextjs項(xiàng)目時(shí)遇到了這個(gè)確切的錯(cuò)誤。當(dāng)我收到此錯(cuò)誤時(shí),我將 a 放在findIndex一個(gè)對(duì)象數(shù)組上,嘗試將新的鍵值對(duì)添加到數(shù)組的特定對(duì)象中。所以我只是這樣做了:


const arrayOfObjects = [...someOtheObj.originalArrayKey]

const index = arrayOfObjects.findIndex((obj)=>{

  // I had some conditions here

})

arrayOfObjects[index] = newValue

正確的

const arrayOfObjects = [...someOtheObj.originalArrayKey]

錯(cuò)誤的

const arrayOfObjects = someOtheObj.originalArrayKey


查看完整回答
反對(duì) 回復(fù) 2023-08-24
  • 3 回答
  • 0 關(guān)注
  • 249 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)