为什么在访问状态时会返回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;
答案 0 :(得分:2)
好像你正在使用不可变的。 state.dog不是一个简单的js数组,而是一个不可变的映射或列表。您可以使用state.dog.toObject()。hasBarked。
本地访问它