React Redux MapStateToProps

时间:2016-10-29 11:55:18

标签: javascript reactjs redux

为什么在访问状态时会返回undefined?我使用Redux DevTools并通过操作查看正确更新的状态,但由于某种原因我无法访问状态值。当我访问state.dog似乎错误时,我得到了这种对象:

ct {size: 1, _root: pt, __ownerID: undefined, __hash: undefined, __altered: false}

这是我的容器代码:

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

这是狗减速器:

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 个答案:

答案 0 :(得分:2)

好像你正在使用不可变的。 state.dog不是一个简单的js数组,而是一个不可变的映射或列表。您可以使用state.dog.toObject()。hasBarked。

本地访问它