如何避免在地图迭代块中创建多个新函数

修传曹

例如,我下面有代码,因为我的onPressCover需要ele.id,ele.uri,ele.title的参数,所以我现在只知道这是唯一需要这样做的方法,但是似乎产生了创建新的副作用每个TouchableOpacity的功能,是否还有其他可以避免副作用的好方法呢?

onPressCover = (id,uri,title) => {
  this.props.navigation.navigate('Introduce',{ 
    id: id, 
    uri: uri,
    title: title, 
    author: '', 
    description: ''
  }) 
}

this.stuff.map((ele,index) => (
  <TouchableOpacity style={styles.cover} key={index} onPress={() => { this.onPressStuff(ele.id,ele.uri,ele.title) }}>
    <Text numberOfLines={2} style={styles.coverText}>{ele.title}</Text>
  </TouchableOpacity> )
devserkan

如果您不想为每个渲染都重新创建函数,则可以为TouchableOpacity创建一个单独的组件,然后在其中使用回调逻辑。

this.stuff.map( ele =>
  <MyTouchableOpacity key={ele.id} ele={ele} onPress={this.onPressCover} /> )

然后在MyTouchableOpacity组件中:

const MyTouchableOpacity = ( { ele, onPress } ) => {
    const handlePress => onPress( ele.id, ele.uri, ele.title );
    return (
        <View>
            <TouchableOpacity style={styles.cover} onPress={handlePress}>
                <Text numberOfLines={2} style={styles.coverText}>{ele.title}</Text>
            </TouchableOpacity>
        </View>
    );
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从从地图中拉出的列表中创建多个动态块条目

在新函数中迭代之前创建的函数的值

如何迭代地图以避免NPE?

如何创建多个迭代

如何避免在numpy中基于数组的函数内进行迭代?

如何使用R(tidyverse)中的函数迭代创建多个小标题?

以迭代方式在数据框中创建多个新列

在迭代中创建函数

如何将函数应用于多个列以在R中创建多个新列?

如何创建一个迭代列表并在数据框中同时创建新列的函数?

如何在地图函数内的每次迭代中分配新的引用?

如何在R中运行多个相关性测试并根据函数结果创建新表

如何在 Hyperledger Fabric 中创建新块

在hazelcast中创建多个地图

如何在gutenberg块中创建多个元字段

如何在Swift中创建块的多个实例?

如何迭代多个函数参数?

迭代地图和更改值时如何避免ConcurrentModificationException?

如何创建迭代器函数

如何在Swift中创建立即调用的函数(块)

如何创建将数据插入到块中的函数

如何在JavaScript的地图函数中创建字典/哈希图?

如何避免多个用户创建多个记录?

我如何在Python中迭代函数以创建数组?

QueryDsl避免多个if块

创建一个函数来迭代列并在 R 中每次迭代创建一个新列

如何触发DNN中的站点地图提供程序来创建新的站点地图?

如何避免执行 viewDidLoad 中的这个“if”块?

如何避免在菜单中重复XAML块