2016-08-24 49 views
0

我有以下代码,我试图更新状态,但它不起作用。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; 

回答

3

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)); 
+0

现在的工作,非常感谢你。 – kobe

+0

是U知道这个代码https://github.com/bananaoomarang/isomorphic-redux – kobe

+0

都能跟得上的,它什么 – martriay