React native React Navigation v.5为深度链接配置正确的状态对象
我在应用程序中处理深度链接时遇到问题。我认为我传递给的配置变量不正确。我的导航结构如下: App.js(简化版)React native React Navigation v.5为深度链接配置正确的状态对象,react-native,navigation-drawer,react-navigation,deep-linking,stack-navigator,React Native,Navigation Drawer,React Navigation,Deep Linking,Stack Navigator,我在应用程序中处理深度链接时遇到问题。我认为我传递给的配置变量不正确。我的导航结构如下: App.js(简化版) const App = () => { const {state} = useContext(UserContext); const [isReady, setIsReady] = React.useState(false); const [initialState, setInitialState] = React.useState(); c
const App = () => {
const {state} = useContext(UserContext);
const [isReady, setIsReady] = React.useState(false);
const [initialState, setInitialState] = React.useState();
const ref = React.useRef();
const config = {
Home: {
path: 'home',
screens:{
HomeDetails: {
path: 'details/:id',
parse: {
id: Number
}
},
ContentPlay: {
path: 'content/:cid',
parse: {
cid: Number
}
}
}
}
};
const { getInitialState } = useLinking(ref, {
prefixes: ['http://example.com', 'https://example.com'],
config
});
useEffect(() => {
getInitialState()
.catch(() => {})
.then(state => {
if (state !== undefined) {
setInitialState(state);
}
setIsReady(true);
});
}, [getInitialState]);
if (!isReady){
return <LoadingScreen />;
}
return (
<NavigationContainer ref={ref} initialState={initialState} >
{state.user.token === '' ? <LoginStack/> : <MainStack/>}
</NavigationContainer>
);
};
const Stack = createStackNavigator();
const Drawer = createDrawerNavigator();
function DrawerNav() {
return (
<Drawer.Navigator
initialRouteName='Home'
drawerContent={props => CustomDrawerContent()}>
<Drawer.Screen
name="Home"
component={HomeScreen}/>
<Drawer.Screen
name="Content"
component={ContentScreen}/>
</Drawer.Navigator>
);
}
const MainStack = () => {
return (
<Stack.Navigator
initialRouteName="DrawerNav">
<Stack.Screen
name="DrawerNav"
component={DrawerNav}/>
<Stack.Screen
name="HomeDetails"
component={HomeDetailsScreen}/>
<Stack.Screen
name="ContentPlay"
component={ContentPlayScreen}/>
</Stack.Navigator>
);
}
export default MainStack;
const config = {
HomeDetails: {
path: "details/:id",
parse: {
id: Number
}
},
ContentPlay: {
path: 'content/:cid',
parse: {
cid: Number
}
}
};