Я работаю в демоверсии Приложение для обучения React native
И мне нужно сделать кликабельный FlatList
элемент.
Вот функция Render
и itemClick
:
render() {
return (
<View style={styles.container}>
<View>
<FlatListData list={this.state.itemList} />
</View>
</View>
);
}
itemClick(item){
console.log('click on item', item);
}
Я уже объявил FlatListData
функциональный компонент для этого:
const FlatListData = ({list}) => {
return (
<FlatList
data={list}
keyExtractor={(item, index) => index.toString()}
renderItem={itemList}
/>
);
};
В FlatList
компоненте, атрибут RenderItem
снова имеет пользовательский компонент для одного элемента, то есть:
const itemList = ({item, index}) => {
return (
<TouchableOpacity onPress={this.itemClick(item)} style={styles.catalogContainer}>
<Image
source={{uri: item.img}}
style={styles.imageStyle}
/>
</TouchableOpacity>
);
};
Но этот код не работает. Это даст мне ошибку вроде: Undefined is not an object (eveluting _this.itemClick)
Здесь каким образом и где я должен написать функцию щелчка для элемента?
У любого есть ответ что может решить мою проблему?
ПРИМЕЧАНИЕ:
- Весь код записан в одном
js file
. Моя Render
функция находится внутри моего компонента класса. и два других компонента declarative
находятся вне этого компонента класса. - Мне нужен этот элемент внутри этой функции щелчка. Но я не знаю, как передать параметр внутри функции.