我基本上有四个屏幕,我将数据发送给其他人 屏幕。例如,我将数据从 Home 发送到 ListScreen 来自 flatlist 的一些项目然后我也发送来自 SearchScreen 到 ListScreen 但当我去时出现问题 TabScreen 中的 ListScreen 或者然后它在 {item.name}
上给我错误
<TouchableOpacity onPress={() => navigation.navigate(MainScreens.ListScreen, {
item: item,
})} >
</TouchableOpacity>
还有
<TouchableOpacity onPress={() => navigation.navigate(MainScreens.ListScreen, {
item: item,
totalFixed: totalPrice,
})} >
</TouchableOpacity>
我的问题是如何在 ListScreen 中区分它们 才知道这两个数据是不同的
export const ListScreen: React.FC<ListScreenProps> = ({ route, navigation }) => {
const { item, totalFixed } = route.params || {};
这里我在 item item.name 中有两种类型的对象和 item.category 但我收到错误 下面我有错误,找不到item.price,因为我带有主屏幕。
<Text >Total: AED {item.price}</Text>
<TouchableOpacity onPress={() => navigation.navigate(MainScreens.ListScreen, {
item: item,
source:'home'
})} >
</TouchableOpacity>
在此处添加源,以便您可以记住屏幕数据
<TouchableOpacity onPress={() => navigation.navigate(MainScreens.ListScreen, {
item: item,
source:'searchScreen'
})} >
</TouchableOpacity>
然后在ListScreen中获取这样的数据
export const ListScreen: React.FC<ListScreenProps> = ({ route, navigation }) => {
const { item, totalFixed, source } = route.params || {};
现在在 ListScreen 中添加您的文本,如下所示
{source === 'home' && (
< Text>Total: AED {item.price}</Text >)}
{source === 'searchScreen' && (
<Text>Total: AED {totalFixed}</Text>)}