【发布时间】:2020-10-12 16:15:14
【问题描述】:
我正在构建一个 react native 应用程序,但在使用 react-navigation/native 将道具传递到另一个屏幕时遇到问题。
导航设置
export type RootStackParamList = {
Home: HomeProps,
LoginDemo: undefined,
Login: undefined
};
const Stack = createStackNavigator<RootStackParamList>();
const store = configureStore();
export const Navigation: React.FC = () => {
return (
<Provider store={store}>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="LoginDemo" component={LoginDemo} />
<Stack.Screen name="Home" component={Home}/>
<Stack.Screen name="Login" component={LoginScreen} />
</Stack.Navigator>
</NavigationContainer>
</Provider>
);
};
进行屏幕切换的代码
React.useEffect(() => {
if (patrolUnits.completed) {
if (patrolUnits.error !== null)
showAlert("error", patrolUnits.error.toString());
else
navigation.replace('Home', {patrolUnitId: patrolUnits.data[0].id});
}
}, [patrolUnits.completed]);
我要切换到的屏幕
export const Home: React.FC<RouteProp<RootStackParamList, "Home">> = routeProps => {
const props = routeProps.params;
const { patrolUnitId } = props;
return (<View>
<Text>{patrolUnitId.toString()}</Text>
</View>)
};
以及应该通过的道具
export type HomeProps = {
patrolUnitId: number;
}
谁能告诉我我做错了什么。几个小时以来,我一直试图弄清楚这一点。我试过谷歌搜索,但几乎所有推荐给我的都是常规反应,而不是原生反应。
【问题讨论】:
标签: typescript react-native react-navigation