react-native - 无法调用 FlatList renderRow 上的方法?
问题描述
我有一个简单FlatList
的 youtube 视频列表,如下所示:
<FlatList
data={this.props.videoList}
renderItem={this.renderRow}
keyExtractor={(item) => item.id.videoId.toString()}
/>
对于每个renderRow
函数,我都需要一个 API 调用来检索喜欢的数量YOUTUBE API
并返回一个组件,如下所示:
renderRow({ item }) {
const something = this.getIndividualStatistics(item);
return (<SomeComponent />);
}
下面是函数getIndividualStatistics
getIndividualStatistics = async item => {
const { data } = await axios.get('youtubeAPI bla bla bla');
return data;
}
我在尝试加载时出错FlatList
解决方案
您需要renderRow
在构造函数中绑定,否则this
inrenderRow
将引用自身:
constructor(props) {
super(props);
this.renderRow = this.renderRow.bind(this);
}
或者声明renderRow
为箭头函数:
renderRow = ({ item }) => {
请参阅此处了解更多信息。
推荐阅读
- javascript - 点击提交后保持在同一个div - php - js
- c# - 如何用简单的方法将这些重复的代码行包装在 Unity 中?
- python-3.x - 根据第二个数组的列中的值更改一个数组中的值
- java - JDK 8('1.8.*')的要求检查失败!检测到的版本:13.0.2
- excel - date string isn't recognized by "Format" or "Cdate"
- mysql - Non-blocking optimize table
- assembly - I get a different result with mul instruction in assembly
- python - 如何导出 JIRA 评论
- c# - 如何在 IRecognizerConvert 中反序列化 luis 实体
- java - 如何找出导致此 Java FX 应用程序线程异常的原因?