React Navigation - this.props.navigation.state 未定义
React Navigation - this.props.navigation.state is undefined
使用:
"@react-navigation/drawer": "^5.4.0",
"@react-navigation/native": "^5.1.4",
App.js:
import { createDrawerNavigator } from '@react-navigation/drawer';
...
const Drawer = createDrawerNavigator();
const DrawerRender = () => {
return (
<NavigationContainer>
<Drawer.Navigator drawerContent={props => <DrawerContent {...props} />}>
<Drawer.Screen name="Home" component={Home} />
<Drawer.Screen name="Screen1" component={Screen1} options={{unmountOnBlur: true, gestureEnabled: false}} />
<Drawer.Screen name="Screen2" component={Screen2} options={{unmountOnBlur: true, gestureEnabled: false}} />
</Drawer.Navigator>
</NavigationContainer>
);}
来自屏幕 1:
navigateToPage = page_id => {
this.closeCommentScreen();
this.reopenModal = true;
this.props.navigation.navigate('Screen2', {'page_id': 'testing'});
}
在屏幕 2 上:
export default class Screen2 extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
let id = this.props.navigation.state.params.page_id
...
我尝试打印 "this.props.navigation",它总是 returns 空字典 {},因此参数未定义。
我做错了什么?
是this.props.route.params
查看升级指南https://reactnavigation.org/docs/upgrading-from-4.x#separate-route-prop
使用: "@react-navigation/drawer": "^5.4.0", "@react-navigation/native": "^5.1.4",
App.js:
import { createDrawerNavigator } from '@react-navigation/drawer';
...
const Drawer = createDrawerNavigator();
const DrawerRender = () => {
return (
<NavigationContainer>
<Drawer.Navigator drawerContent={props => <DrawerContent {...props} />}>
<Drawer.Screen name="Home" component={Home} />
<Drawer.Screen name="Screen1" component={Screen1} options={{unmountOnBlur: true, gestureEnabled: false}} />
<Drawer.Screen name="Screen2" component={Screen2} options={{unmountOnBlur: true, gestureEnabled: false}} />
</Drawer.Navigator>
</NavigationContainer>
);}
来自屏幕 1:
navigateToPage = page_id => {
this.closeCommentScreen();
this.reopenModal = true;
this.props.navigation.navigate('Screen2', {'page_id': 'testing'});
}
在屏幕 2 上:
export default class Screen2 extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
let id = this.props.navigation.state.params.page_id
...
我尝试打印 "this.props.navigation",它总是 returns 空字典 {},因此参数未定义。
我做错了什么?
是this.props.route.params
查看升级指南https://reactnavigation.org/docs/upgrading-from-4.x#separate-route-prop