javascript - 找不到屏幕“主页”的“组件”或“儿童”道具。如果您传递了“未定义”,则可能会发生这种情况。react-navigate v5 出错?
问题描述
我正在尝试使用 react-navigate v5 为四个屏幕设置 stacknavigator。目前我在尝试运行应用程序时遇到此错误:
我的 App.js:
import React from 'react';
import SafeAreaView from 'react-native-safe-area-view';
import MainStackNavigator from './navigation/Navigator';
import {LocalizationProvider} from './utils/localization/LocalizationContext';
import { NavigationContainer } from '@react-navigation/native';
const App: () => React$Node = () => {
return (
<NavigationContainer>
<LocalizationProvider>
<MainStackNavigator />
</LocalizationProvider>
</NavigationContainer>
);
};
export default App;
我的 Navigator.js:
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
import {Map} from '../components/Map';
import {HomeScreen} from '../components/HomeScreen';
import {LanguageSettings} from '../components/LanguageSettings';
import {MarkerDetails} from '../components/MarkerDetails';
// import screens
const Stack = createStackNavigator();
function MainStackNavigator() {
return (
<Stack.Navigator
initialRouteName='Home'>
<Stack.Screen
name='Home'
component={HomeScreen}
/>
<Stack.Screen
name='LanguageSettings'
component={LanguageSettings}
/>
<Stack.Screen
name='MainMap'
component={Map}
/>
<Stack.Screen
name='MarkerDetails'
component={MarkerDetails}
/>
</Stack.Navigator>
);
}
export default MainStackNavigator;
以及产生错误的主屏幕本身(其他屏幕也是如此):
import React, {useContext} from 'react';
import {
View,
Image,
StyleSheet,
Dimensions,
ImageBackground,
Layout,
Text,
Modal,
Button
} from 'react-native';
const { width, height } = Dimensions.get('window');
const frameWidth = width;
const columnWidth = frameWidth / 3;
class HomeScreen extends React.Component {
static navigationOptions = {};
constructor(props) {
super(props);
this.state = {
firstLaunch: null,
condUpdate: null
};
}
///....///
render() {
return(
<View
style={{
flex: 1,
alignItems: 'center',
justifyContent: 'center',
margin: 20,
}}>
</View>
);
}
}
export default HomeScreen;
不知道发生了什么,希望得到一些帮助。谢谢!
解决方案
发生这种情况是因为您导出和导入的方式HomeScreen
。
如果您export default
需要导入整个文件。您的解决方法是更改Navigator.js
from 中的导入:
import {HomeScreen} from '../'
至
import HomeScreen from '../'
您将使用解构导入的时间是这样的工作流程:
modules.export = {
a: apple
b: banana
}
----
import { a, b } from './fruits.jsx'
推荐阅读
- c# - 无法在 Visual Studio 中添加 TabControl
- json - 如何在不反序列化的情况下将 JSON 保存到 Azure 中的表存储?
- javascript - 更改 Navbar-logo onScroll 的不透明度
- php - 在 WooCommerce 商店页面中隐藏特定类别
- maven - 处理 Artifactory Maven 存储库 URL 重定向
- python - QTableWidget 列标题的 PyQt5 上下文菜单
- python-3.x - 使用 SQLite 数据库更新 Tkinter Treeview
- ios - iOS - 将(100 多个)文件导出到 Google 云端硬盘
- python-3.x - TypeError:无法腌制 dict_items 对象
- jquery - 双向视差滚动