平面列表中renderItem内的函数

时间:2018-12-14 21:40:33

标签: react-native render react-native-flatlist

我有一个列表,并且工作正常,我正在尝试将一个函数放入呈现我的商品的代码中,但它给我一个错误,我需要将函数放在那里,以便我可以读取商品的属性,这是我的代码:

_renderItem ({ item, index}) {
     _shareText() {
          Share.share({
            message: item.name,
          })
        } 
return (
 <Button title="Share" onPress={this._shareText}/>
);
}

2 个答案:

答案 0 :(得分:1)

尝试一下,我可以看到_shareText没有像组件中的函数那样定义

_shareText(item) {
  Share.share({
    message: item.name,
  })
}

_renderItem({ item, index }) {
  return (
    <Button title="Share" onPress={() => { this._shareText(item); }} />
  );
}

答案 1 :(得分:0)

您需要将_shareText函数与_renderItem函数分开。

因此,在您的课程中,创建您的_shareText函数,并为其指定参数item。现在应该看起来像这样:

_shareText(item) {
  Share.share({
    message: item.name,
  });
} 

然后将您的_renderItem函数更改为以下内容:

_renderItem ({ item, index}) {
  return (
   <Button title="Share" onPress={this._shareText.bind(this, item)}/>
  );
}

您的电话无法正常运行的原因是,首先,_shareText函数不在正确的位置,其次,您没有将该项作为参数传递给_shareText函数,其次,您需要将_shareText函数绑定到要呈现的项目的特定实例。