2016-08-24 4 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() 
}) 

Я использую набор, но когда я консолью перед возвратом, он просто печатает исходный объект. Что я делаю не так?

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

вы знаете об этом коде https://github.com/bananaoomarang/isomorphic-redux – kobe

+0

nope, что об этом – martriay

Смежные вопросы