react-native - 使用 react-navigation 导航到另一个屏幕
问题描述
我正在使用此链接中提到的方法路由到另一个屏幕。问题是他们在功能组件中使用了钩子。我正在使用一个类组件。
我的问题是,如何使用此导航在作为类组件的子组件内从一个屏幕导航到另一个屏幕。
因为类组件不允许我在其中使用钩子。
我的路线如下:
const Tab = createBottomTabNavigator();
const Stack = createStackNavigator();
const HomeScreenRoutes = () => {
return (
<Tab.Navigator>
<Tab.Screen
name="Dashboard"
component={DashboardScreen}/>
<Tab.Screen
name="Transactions"
component={TransactionsScreen}/>
<Tab.Screen
name="Reports"
component={ReportsScreen}/>
<Tab.Screen
name="About Me"
component={UserInfoScreen}/>
</Tab.Navigator>
);
};
const Routes = () => {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="LoginSignup"
component={AuthenticationScreen}
options={
{title: 'Login or Signup', headerShown: false}
}/>
<Stack.Screen
name="HomeScreen"
component={HomeScreenRoutes}
/>
</Stack.Navigator>
</NavigationContainer>
);
};
解决方案
从components
作为 props 传入的<Stack.Screen>
你可以很容易地访问navigation
props。该值与您从useNavigation
钩子中获得的值相同。
class DashboardScreen extends React.Component {
render() {
const navigation = props.navigation; // this should be populated
// you can use this in a component to navigate from there.
}
}
如果您想从嵌套组件(即孩子的孩子)访问导航,则必须将其作为道具传递给继承。
推荐阅读
- r - R Dataframe新列与其他两列的滚动相关
- python - 如何使用 Requests 的 GET 方法查找未完成的 url?
- python - 检查并运行正确的 TensorFlow 版本(v2.0)
- java - Android - 如何在 Firestore 中显示创建的用户
- java - 如何使用流重用具有几乎相同实现的 Java 方法
- swift - 具有渐变文本颜色的自定义 UILabel 始终变为黑色
- php - jQuery DataTables 是在单个请求中还是使用分页从数据库中获取所有数据?
- caching - 缓存的目的是什么(tmp\_WL_user、AdminServer/tmp)?
- opencv - 具有给定字节数的浮点数是否有标准数据类型?
- android - android中的row Max如何记录数据库sqlite