我有以下问题:
this.state.renderMap.map(function(name, index) {
return (
<View style={styles.checkBoxWrapper} key={index}>
<CheckBox title={name} value={() => {this.state.name} onValueChange={() => console.log(name)} />
<Text>{name}</Text>
</View>
);
}, this)
如您所见,我正在尝试渲染一个地图数组,它可以按预期工作。我唯一的问题是,我不知道如何访问状态,即“ this.state。{当前数组项的名称}”。有人可以帮我吗?我尝试使用几种方法,但到目前为止都没有解决。
亲切的问候
答案 0 :(得分:0)
根据您的描述,我相信这就是您要寻找的。我已经更新了地图,以使用箭头功能来帮助限制范围界定问题。
我还更新了value
函数。我相信您是说状态变量就是这样命名的。
如果您有一个带有name: "foo"
的项目,那么状态对象将是this.state.foo
?该解决方案以这种方式完成了访问状态。
this.state.renderMap.map((name, index) => {
return (
<View style={styles.checkBoxWrapper} key={index}>
<CheckBox title={name} value={() => this.state[name]} onValueChange={() => console.log(name)} />
<Text>{name}</Text>
</View>
);
})
答案 1 :(得分:-1)
错误的this
值可能与您的函数有关;尝试将地图更改为箭头功能
this.state.renderMap.map((name, index)=> {
答案 2 :(得分:-1)
是的,使用箭头函数可以访问map函数中的状态变量,但是如果您将name
作为状态变量,并且您在map函数中的第一个参数也称为{{1 }}有点令人困惑。
另外,如果您在renderMap数组中将name
作为键,则可以这样做,
name
应该为您提供renderMap数组的名称。