[英]spread state in react redux
我想知道什么呢...state
內{ ...state }
呢? 是將store的值改為初始值還是讓store為最新值?
import * as actionType from "../actions/actionTypes";
const initialStore = {
roomsCount: 0,
resPerPage: 0,
rooms: [],
filteredRooms: 0,
error: null,
success: false,
};
const reducer = (state = initialStore, action) => {
switch (action.type) {
case actionType.ALL_ROOM_SUCCESS:
return {
...state,
success: true,
rooms: action.rooms,
roomsCount: action.roomsCount,
resPerPage: action.resPerPage,
filteredRooms: action.filteredRooms,
};
case actionType.ALL_ROOM_FAILED:
return {
...state,
error: action.err,
};
}
};
如果一開始我使用這個減速器,它會成功,所以success
將為true
, error
將為null
。 但是如果它第二次失敗並且我在這種情況下使用...state
,那么成功值是多少? 它是初始值 ( false
) 還是保留第一個請求中的值 ( true
)?
這稱為擴展運算符,它基本上允許您將一個對象的字段“克隆”到一個新對象中。
在您的示例中, { ...state, error: action.err }
表示“從state
復制所有字段,但將字段error
設置為action.err
”。 對於您想要更改很少字段但又想要保留原始數據的這種邏輯,它非常方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.