3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
push
返回新length
的 mutated array
。使用concat
,而不是返回一個(gè)新的數(shù)組
results : state.results.concat(item)
讓我們假設(shè)以下代碼
results : state.results.push('foo')
假設(shè) results
有一個(gè)length
of 5
,上面的代碼將斷言
results : 5
下次您嘗試push
results
這樣做時(shí),您的編譯器會(huì)是什么樣子
5.push('foo')

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
返回值的.push就是
調(diào)用方法的對(duì)象的新長(zhǎng)度屬性。
添加值以stae.results使用concat或spread 語(yǔ)法:
case "STORE_RESULT": {
return {
...state,
results: [...state.results, state.counter]
};
}

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
您應(yīng)該在減速器開(kāi)關(guān)中添加默認(rèn)情況。
并使用[...state.results, state.counter]代替state.results.push(state.counter)。
像這樣
const intialState = {
counter: 0,
results: []
};
const reducer = (state = intialState, action) => {
switch (action.type) {
case "INCREMENT":
return {
...state,
counter: state.counter + 1
};
case "STORE_RESULT": {
return {
...state,
results: [...state.results, state.counter] // here
};
default:
return state; // here
}
}
};
export default reducer;
添加回答
舉報(bào)