使用 TypeScript 和 expo 通过反应导航设置 Stack 时出错
Error Setting up Stack with react navigation using TypeScript and expo
loginStack.tsx
当我将鼠标悬停在 createStackNavigator()
声明中的 screens
参数上时,会弹出此错误。这是其中一个 screens
的示例(它们都是一样的):
home.tsx
import React from 'react';
import { View, Text } from 'react-native';
import { globalStyles } from '../styles/global';
export default function Home() {
return (
<View style={globalStyles.container}>
<Text>Home Screen</Text>
</View>
)
}
我已经 运行 这些命令来安装必要的库:
expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view
npm install @react-navigation/native
npm install @react-navigation/stack
您正在尝试以旧方式定义屏幕,即 react-navigation v4
方式。从您的导入中,很明显您使用的是库的 v5 或 v6。要在 v5 或 v6 中定义屏幕,您可以执行以下操作,
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import Home from '../screens/home';
import Login from '../screens/login';
import Registration from '../screens/registration';
const Stack = createStackNavigator();
function MyStack() {
return (
<Stack.Navigator>
<Stack.Screen name="Home" component={Home} />
<Stack.Screen name="Login" component={Login} />
<Stack.Screen name="Registration" component={Registration} />
</Stack.Navigator>
);
}
现在在您的 App.js
或您的主要入口点,
您可以通过将其包装在 NavigationContainer
中来使用此堆栈
loginStack.tsx
当我将鼠标悬停在 createStackNavigator()
声明中的 screens
参数上时,会弹出此错误。这是其中一个 screens
的示例(它们都是一样的):
home.tsx
import React from 'react';
import { View, Text } from 'react-native';
import { globalStyles } from '../styles/global';
export default function Home() {
return (
<View style={globalStyles.container}>
<Text>Home Screen</Text>
</View>
)
}
我已经 运行 这些命令来安装必要的库:
expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view
npm install @react-navigation/native
npm install @react-navigation/stack
您正在尝试以旧方式定义屏幕,即 react-navigation v4
方式。从您的导入中,很明显您使用的是库的 v5 或 v6。要在 v5 或 v6 中定义屏幕,您可以执行以下操作,
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import Home from '../screens/home';
import Login from '../screens/login';
import Registration from '../screens/registration';
const Stack = createStackNavigator();
function MyStack() {
return (
<Stack.Navigator>
<Stack.Screen name="Home" component={Home} />
<Stack.Screen name="Login" component={Login} />
<Stack.Screen name="Registration" component={Registration} />
</Stack.Navigator>
);
}
现在在您的 App.js
或您的主要入口点,
您可以通过将其包装在 NavigationContainer