如何访问地图数组中的状态

时间:2018-12-12 19:33:51

标签: javascript react-native state

我有以下问题:

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。{当前数组项的名称}”。有人可以帮我吗?我尝试使用几种方法,但到目前为止都没有解决。

亲切的问候

3 个答案:

答案 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数组的名称。