【问题标题】:Navigating between screens in different files在不同文件的屏幕之间导航
【发布时间】:2021-07-29 21:53:28
【问题描述】:

我在不同文件的屏幕之间导航时遇到了问题;我假设这是由于将功能组件从一个文件不正确地导出到另一个文件造成的。我为它创建了一个小吃:https://snack.expo.dev/@figbar/exportingbetweenscreens,并将代码粘贴在下面。本质上,如果 'DetailsS​​creen' 在 app.js 中,该项目将成为示例导航项目,并且可以正常工作,但是,当它在这个新文件中时,导航到时详细信息屏幕是空白的。

App.js:

import * as React from 'react';
import { Button, View, Text } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import {DetailsScreen} from './other';

function HomeScreen({ navigation }) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Home Screen</Text>
      <Button
        title="Go to Details"
        onPress={() => navigation.navigate('Details')}
      />
    </View>
  );
}

const Stack = createStackNavigator();

function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRouteName="Home">
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen name="Details" component={DetailsScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

export default App;

其他.js:

import * as React from 'react';
import { Button, View, Text } from 'react-native';

function DetailsScreen() {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Details Screen</Text>
    </View>
  );
}
export default DetailsScreen;

【问题讨论】:

    标签: reactjs react-native react-navigation


    【解决方案1】:

    DetailsS​​creen 是默认导出的,所以应该这样导入:

    import DetailsScreen from './other';
    

    不是这个:

    import {DetailsScreen} from './other';
    

    去掉花括号,你就可以开始了。或者,不要将 DetailsS​​creen 导出为默认值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-06
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多