使用 javascript map 读取键值对以填充选择器时出错,react native
2017-03-12
323
我正尝试从键值对中填充 React Native 中 picker 元素的键值。当我尝试传递键值列表时,应用程序崩溃。
例如:(这不起作用)
-- In the constructor
stateList: [{1:'Fortsworth'},{2:'Chicago'}],
--In the render()
this.state.stateList.map( (s, i) => {
console.log('key='+i+',value='+s);
return <Picker.Item key={i} value={s} label={s} />
});
但是,只有当我传递没有键值对的数组时,它才有效。以下代码有效。
-- In the constructor
stateList: ['Fortsworth','Chicago'],
--In the render()
this.state.stateList.map( (s, i) => {
console.log('key='+i+',value='+s);
return <Picker.Item key={i} value={s} label={s} />
});
我需要将键作为“1”并将值作为“Fortsworth”传递给选择器。感谢您的输入。
2个回答
这是我所知道的唯一方法:
Object.keys(this.state.stateList).map(function(key) {
let value = this.state.stateList[key];
console.log('key=' + key + ',value=' + value);
return <Picker.Item key={key} value={value} label={value} />
}
本质上,您循环遍历键列表,然后使用该键从地图中提取值。
如果有人有更好的解决方案,请务必提供答案,因为我对此也很好奇。
编辑 :
抱歉,我刚意识到您有一个地图条目列表。对于我的答案,您需要
stateList
作为地图:
stateList:{1:'Fortsworth',2:'Chicago'
TheJizel
2017-03-13
这应该能给你一些想法 -
var states = [{'1': 'Fortsworth'}, {'2': 'Chicago'}];
var key = '';
states.map(s => {
key = Object.keys(s)[0];
console.log("key",key,"value",s[key]);
});
vinayr
2017-03-13