簡體   English   中英

反應 redux 中的傳播狀態

[英]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將為trueerror將為null 但是如果它第二次失敗並且我在這種情況下使用...state ,那么成功值是多少? 它是初始值 ( false ) 還是保留第一個請求中的值 ( true )?

這稱為擴展運算符,它基本上允許您將一個對象的字段“克隆”到一個新對象中。

在您的示例中, { ...state, error: action.err }表示“從state復制所有字段,但將字段error設置為action.err ”。 對於您想要更改很少字段但又想要保留原始數據的這種邏輯,它非常方便。

暫無
暫無

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

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