下面是我从API获取国家I地区名称并使用routes
将其显示在屏幕上的情况。现在,我想将item.country
显示为headerTitle
。但是,对于route.params.
,我得到了一个undefined
错误。如何修复此错误?
位置数据屏幕.tsx
function LocationDataScreen({ route, navigation }) {
const { item } = navigation.state.params || {};
const countryName = item.country;
return (
<View style={styles.container}>
<Text>{countryName}</Text>
<Text>{item.cases}</Text>
</View>
);
}
项目视图.tsx
const ItemView = ({ item }) => {
return (
<RectButton
onPress={() =>
navigate("LocationDataScreen", { item: item, name: item.country })
}
>
<Text style={[styles.itemStyle, { textTransform: "capitalize" }]}>
{item.id}
{item.country.toUpperCase()}
</Text>
</RectButton>
);
};
应用程序tsx
<AppStack.Navigator initialRouteName="SearchScreen">
<AppStack.Screen name="SearchScreen" component={SearchScreen} />
<AppStack.Screen
name="LocationDataScreen"
component={LocationDataScreen}
options={({ route }) => ({
headerLargeTitle: true,
title: route.params.item,
})}
/>
3条答案
按热度按时间bxgwgixi1#
你应该像下面这样做
您必须像下面这样传递名称
请确保您具有如下所示的设置,以便访问参数
hwazgwia2#
问题很简单,您以错误的方式将参数传递给
LocationDataScreen.tsx
。请使用以下命令:
项目视图
位置数据屏幕.tsx
我在这里假设您的item在这一行
const ItemView = ({ item }) => {
看起来像这样。如果你可以添加你的api响应这里。让我知道在评论一旦你添加。也分享链接到相同的评论。
42fyovps3#
根据React导航文档,将类型设置为;
然后在你的屏幕上;
然后为屏幕定义界面;
在这之后,当使用route.params.key时,它会给出警告:last route.params可能是一个空对象。