在处理平面列表中的项目时遇到一些问题。当前在列表项目上按时收到错误 * 无法读取undefined的属性(阅读“onPressListHandler”)*。
下面是我的屏幕代码:
const listRenderItem = ({ item }) => {
return (
<Pressable onPress={() => this.onPressListHandler(item.id)} >
<Text _dark={{ color: "warmGray.50" }} color="coolGray.800">
{item.listName}
</Text>
<Icon as={Ionicons} name="chevron-forward-outline" size="sm" />
</Pressable>
)
};
const ListsList = () => {
// ...
function onPressListHandler(id) {
navigation.navigate('ListDetailScreen', { listId: id })
}
// Render
return (
<FlatList
data={lists}
renderItem={listRenderItem}
keyExtractor={item => item.id}
/>
);
function MainScreen({ navigation }) {
// ...
// Render
return (
<ListsList />
);
}
export default MainScreen;
我怎样才能确保新闻发布会被通过并正常运行?TIA。
2条答案
按热度按时间x4shl7ld1#
有多种方法可以实现这一点,@yousoumar有一个非常有效的方法。
其他一些:
1.将
onPressListHandler
传递给组件。1.将
listRenderItem
放入ListsList
组件中。我个人在这里选择第二个选项,但我很想知道为什么渲染函数在组件之外。
ltqd579y2#
例如,您可以通过在
listRenderItem
内部处理重定向来执行以下操作: