React-Native回调函数/方法不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-Native回调函数/方法不起作用相关的知识,希望对你有一定的参考价值。
我阅读了几个教程,但我不明白为什么传递回调函数和回调方法都不起作用。
当我在console.log中时,回调函数是未定义的。
请帮忙。
import React, { Component } from 'react';
import { FlatList } from 'react-native';
import { RecipeCard } from '../RecipeCard/RecipeCard';
import recipeData from '../../config/SampleDataRecipeList.json';
class RecipeList extends Component {
constructor(props) {
super(props);
this.handlePress = this.handlePress.bind(this);
}
state = {};
handlePress() {
console.log('Handle Press');
}
handleClick = () => {
console.log('Handle Click');
};
renderItem({ item }) {
return (
<RecipeCard
title={item.title}
persons={item.persons}
time={item.time}
uri={item.uri}
onPress={this.handlePress}
/>
);
}
render() {
return (
<FlatList
data={recipeData}
renderItem={this.renderItem}
keyExtractor={(item, index) => index.toString()}
/>
);
}
}
export { RecipeList };
答案
我建议使用像下面这样的箭头函数:
renderItem = item => {
return (
<RecipeCard
title={item.title}
persons={item.persons}
time={item.time}
uri={item.uri}
onPress={this.handlePress}
/>
);
另一答案
解决方案是更改为在构造函数中绑定renderItem或将其更改为胖箭头函数
renderItem = ( ) => {...}
以上是关于React-Native回调函数/方法不起作用的主要内容,如果未能解决你的问题,请参考以下文章