2016-10-29 19 views
0

状態にアクセスしたときにundefinedが返されるのはなぜですか?私はRedux DevToolsを使用し、アクションによって正しく更新された状態を確認しますが、何らかの理由で状態値にアクセスできません。React Redux MapStateToProps

import * as Immutable from 'immutable'; 
import { MAKE_BARK } from '../actions/dog'; 

const initialState = Immutable.Map({ 
    hasBarked: false, 
}); 

const dogReducer = (state: Object = initialState, action: Object) => { 
    switch (action.type) { 
    case MAKE_BARK: 
     return state.set('hasBarked', action.payload); 
    default: 
     return state; 
    } 
}; 

export default dogReducer; 
+1

あなたの 'dog reducer'を一度表示してください –

+0

あなたのレデューサーのコードを質問に追加して、問題を特定するのを助けてください。 – NiFi

答えて

2

はのように思える:ここ

import { connect } from 'react-redux'; 
import Message from '../../components/message'; 

const mapStateToProps = (state) => { 
    console.log(state.dog.hasBarked); 
    return { 
     message: state.dog.hasBarked ? 'Barked' : 'It is quiet', 
    }; 
}; 

export default connect(mapStateToProps)(Message); 

は犬の減速である:ここで
ct {size: 1, _root: pt, __ownerID: undefined, __hash: undefined, __altered: false} 

は私のコンテナコードです:私は私が間違っているようだ state.dogにアクセスするときにオブジェクトのこの種が返さ取得しますあなたは不変です。 state.dogは単純なjs配列ではなく、不変のマップまたはリストです。 state.dog.toObject()。hasBarkedを使用してネイティブにアクセスできます。

+0

ありがとう、不変だった使用されていた。 – user3554382

関連する問題