2016-11-18 202 views
1

看起來我的減速機沒有更新商店。任何想法爲什麼會發生?減速機未更新商店

import 'babel-polyfill' 

const initialState = { 
    user: { 
     name: 'Username', 
     Avatar: '/img/default/avatar.png' 
    }, 
    friendsList: [] 
} 

export default (state = initialState, action) => { 

    switch (action.type) { 


     case 'setUserInfo' : 
      // If I console.log action.user here, I see that I'm getting good user data 
      return Object.assign({}, state, { 
       user: action.user 
      }) 
     default: return state 

    } 
} 

回答

0

您的減速機沒有任何問題,它會更新狀態並返回正確的狀態。

請確保您有以下代碼存在。

創建這樣

var updateUser = function (user) { 
    return { 
     type: 'setUserInfo', 
     user: user 
    } 
} 

行動的創建者創建一個產品進口的減速

import { createStore } from 'redux' 
import userReducer from 'your reducerfile' 
let store = createStore(userReducer) 

你必須需要通過

store.dispatch(updateUser({name: 'some', Avatar: '/image/some'})); 
+0

派遣的動作是不是你的代碼本質與我的一樣 - 只是使用更簡潔的Object.assign版本? – Sam

+0

是更新了答案 – mshameer