Leon 2 роки тому
батько
коміт
70aec100d1
2 змінених файлів з 60 додано та 1 видалено
  1. 39 1
      src/pages/RNMain.tsx
  2. 21 0
      src/utils/utils.tsx

+ 39 - 1
src/pages/RNMain.tsx

@@ -1,11 +1,49 @@
 import React from 'react';
 import { NavigationContainer } from '@react-navigation/native';
 import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
+import { createStackNavigator } from '@react-navigation/stack';
 
 import Clock from './Clock'
 import Profile from './Profile'
 
-const Tab = createBottomTabNavigator()
+// 创建底部 Tab 导航器
+const Tab = createBottomTabNavigator();
+
+// 创建堆栈导航器
+const Stack = createStackNavigator();
+
+/*
+// 创建 A 页面的堆栈导航器
+const AStack = () => {
+  return (
+    <Stack.Navigator>
+      <Stack.Screen name="A" component={AScreen} />
+      <Stack.Screen name="C" component={CScreen} options={{ tabBarVisible: true }} />
+    </Stack.Navigator>
+  );
+};
+
+// 创建 B 页面的堆栈导航器
+const BStack = () => {
+  return (
+    <Stack.Navigator>
+      <Stack.Screen name="B" component={BScreen} />
+      <Stack.Screen name="D" component={DScreen} options={{ tabBarVisible: false }} />
+    </Stack.Navigator>
+  );
+};
+
+const App: React.FC = () => {
+  return (
+    <NavigationContainer>
+      <Tab.Navigator>
+        <Tab.Screen name="A" component={AStack} />
+        <Tab.Screen name="B" component={BStack} />
+      </Tab.Navigator>
+    </NavigationContainer>
+  );
+};
+*/
 
 export default function RNMain() {
     return (

+ 21 - 0
src/utils/utils.tsx

@@ -0,0 +1,21 @@
+import Taro from "@tarojs/taro";
+import { useNavigation } from '@react-navigation/native';
+
+//https://stackoverflow.com/questions/68779417/navigation-navigatehome-showing-some-error-in-typescript
+export default function pushPage(url: string) {
+    if (process.env.TARO_ENV === 'rn') {
+        const navigation = useNavigation();
+        navigation.navigate(url);
+        /*
+        navigation.navigate('Home', {
+  screen: 'Feed',
+  params: { sort: 'latest' },
+});
+        */
+    }
+    else {
+        Taro.navigateTo({
+            url: url
+        })
+    }
+}