javascript - Redux reducer 不更新状态对象

标签 javascript reactjs redux

我有以下代码,我正在尝试更新状态,但它不起作用。

import Immutable from 'immutable';
import _un  from 'underscore';
import { List, Map } from 'immutable'; 

const defaultState = Map({
  isFetching:true,
  deparments: List(),
  products:List(),
  breadcrumb:List()
})

我正在使用 set,但是当我在返回之前进行控制台时,它只打印原始对象。我做错了什么?

switch(action.type) {
     case 'GET_GALLERY_DATA':

      //console.log("-- api success handler--");
      //console.log(action);

       var depts = getGalleryParsedData(action.res.data);
       var products = getProducts(action.res.data);
       var breadcrumb = getBreadcrumbs(action.res.data);

      state.set('isFetching', true);
      state.set('deparments', List(depts))
      state.set('products', List(products))
      //state.set('breadcrumb', List(breadcrumb))

     console.log("---state----");
     console.log(state);
      return state;

最佳答案

Immutable.js 不会改变你的状态,它返回原始对象的变异副本。

state = state.set('isFetching', true);
state = state.set('deparments', List(depts));
state = state.set('products', List(products));

state = state
  .set('isFetching', true)
  .set('deparments', List(depts))
  .set('products', List(products));

关于javascript - Redux reducer 不更新状态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39113878/

相关文章:

javascript - react : Spread the return of a function in one line

javascript - 复选框上的多行选择和单击 MUI DataGrid 中的行时的单一选择

javascript - 在 react-redux 应用程序中处理大量 http 请求

javascript - 动态创建二维对象Javascript

javascript - react : Generate all date of birth select options

javascript - python dict.update() 在 javascript 中等效

javascript - 无论结果如何,在 promise 之后执行次要行动?

typescript - react Redux TS : TypeScript complains about a connect() call

javascript - Hapi.js 和 Bookshelf.js 验证问题

javascript - 如何在 JavaScript 中使用静态方法中的私有(private)成员?