如何在使用map函数遍历数组时更新一个特定元素的状态

乌德海

使用map函数遍历数组时如何更新一个特定元素的状态。

<View style={{ marginBottom: 20 }}>
       {
         this.props.addresses.map(addr => {
          return (
            <View style={{ marginRight: 10 }} key={addr.label}>
              <View>
                <Text style={styles.labelTextStyle}>{addr.label}</Text>
              </View>
            </View>
          );
        })
      }
</View>

触发事件时如何更新一个特定元素(addr.label)的状态?

数字

您不能直接在循环中调用setState

来自react docs:

setState()不会立即使this.state突变,而是创建一个挂起的状态转换。调用此方法后访问this.state可能会返回现有值。无法保证对setState的调用的同步操作,并且可以为提高性能而对调用进行批处理。

你能做的是

eventHandler(idx, val) {
   var newState = {}
   newState[idx] = val;
   this.setState(newState);
}

在视图中,假设您有一个需要触发处理程序的按钮

<View style={{ marginBottom: 20 }}>
       {
         this.props.addresses.map(addr, idx => {
          return (
            <View style={{ marginRight: 10 }} key={addr.label}>
              <View>
                <Text style={styles.labelTextStyle}>{addr.label}</Text>
                <Button onPress={this.eventHandler.bind(this, idx, addr.label}><Button>
              </View>
            </View>
          );
        })
      }
</View>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

只有一个元素时遍历数组

单击按钮时,一个接一个地遍历数组元素

使用地图功能时如何更新一个特定元素的状态

如何通过另一个异步函数内部的异步函数遍历数组?

遍历数组以对样式元素使用数据属性,但仅获取数组中的最后一个值

ReactJS如何遍历数组并获取另一个数组中对象的特定属性

如何在 Scala 中为数组的第一个特定元素应用函数?

遍历数组的每个元素(第一个元素除外)

如何使用一个函数更新 React 状态?

如何在使用另一个状态时更新父状态而不导致无限更新?

如何在angualr.js中的另一个arry中循环遍历数组

ng-repeat角遍历数组时将两个元素添加到div中,而不是一个元素

遍历数组并为每个项目返回一个`Dropdown.Item`元素

遍历数组并为每个元素生成一个新变量

是否可以遍历数组,但不包括第一个元素?

在C中的另一个函数中遍历数组

如何逐步遍历数组元素或递归函数的对象的属性

遍历数组时,第一个值始终为“未定义”

当我在打字稿中使用减少数组函数时如何遍历数组?

使用map()函数onClick(ReactJS)遍历数组

如何遍历数组并对最后一个索引做一些不同的事情?

使用for-of遍历数组时获取元素的索引

如何使用 .map() 函数循环遍历数组但同时显示的组件数量有限?

遍历数组并仅获取最后一个项目?

循环遍历数组并删除一个项目

我如何遍历数组的下一个位置

如何遍历数组并将每个新数字乘以下一个?

如何在CoffeeScript中遍历数组以查找特定值

当有项目时,如何在 Vue 中循环遍历数组的次数的一半?