首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redux MapStateToProps

Redux MapStateToProps
EN

Stack Overflow用户
提问于 2016-10-29 11:55:17
回答 1查看 249关注 0票数 0

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

代码语言:javascript
复制
ct {size: 1, _root: pt, __ownerID: undefined, __hash: undefined, __altered: false}

这是我的容器代码:

代码语言:javascript
复制
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);

这是狗减速机:

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-29 12:13:04

看来你是在使用不变的。state.dog不是一个简单的js数组,而是一个不可变的映射或列表。您可以本机使用state.dog.toObject().hasBarked访问它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40318817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档