【发布时间】:2017-01-03 08:53:36
【问题描述】:
这是我的代码中的一个 sn-p:
this.state = {
data: Immutable.Map({
gender: "",
provinces: Immutable.Map(),
activeProvince: this.props.defaultProvince,
activeCity: this.props.defaultCity,
})
}
let cities = this.state.data.getIn(['provinces', '354']);
The structure would look like this:
state{
gender: "",
activeProvince: "354",
provinces: {
354: {
name: "abc",
cities: Immutable.Map()
},
123: {
name: "def",
cities: Immutable.Map()
}
}
获取“省”仅返回一个大小为 87 的地图,这意味着它具有价值,但再深入 1 级会给我一个未定义的结果。从浏览器在控制台中执行此操作会给我预期的结果。
我是在“返回”之前从 render() 开始的
render(){
let provinces = this.state.data.get('provinces')
.sortBy( province => province.get('name') )
.map( (value, key) => {
return { text: value.get('name'), value: key }
});
// Supposed to do the same thing as above (provinces)
// with ['provinces'] only it returns a value, adding '354' returns undefined.
let cities = this.state.data.getIn(['provinces', '354']);
console.log(cities);
-- 编辑--
通过'toObject()'将省份地图转换为对象显示键存在,那么为什么getIn('provinces,'354')显示未定义?
【问题讨论】:
标签: reactjs reactjs-flux immutable.js