我有一个列表,并且工作正常,我正在尝试将一个函数放入呈现我的商品的代码中,但它给我一个错误,我需要将函数放在那里,以便我可以读取商品的属性,这是我的代码:
_renderItem ({ item, index}) {
_shareText() {
Share.share({
message: item.name,
})
}
return (
<Button title="Share" onPress={this._shareText}/>
);
}
答案 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
函数绑定到要呈现的项目的特定实例。