javascript - 如何在同一目录中正确导入屏幕?
问题描述
我是新来的react-native/expo
,我目前正在尝试测试我的代码并确保我设置react-navigation
正确。当我尝试在我的智能手机上运行 expo 时,我得到了这个:
无法从“C:\Users[username]\Desktop\JDA\Smartbox\screens\HomeScreen.js”解析模块“./screens/RegistrationScreen”:无法从“C:”中找到模块“./screens/RegistrationScreen”: \Users[用户名]\Desktop\JDA\Smartbox\screens\HomeScreen.js'。事实上,这些文件都不存在......
我不确定我是否写错了目录,但我似乎无法找到许多其他发生这种情况的情况并找到合适的解决方案。
import React from 'react';
import {
Image,
Platform,
ScrollView,
StyleSheet,
StatusBar,
Text,
Button,
TouchableOpacity,
View,
} from 'react-native';
import { WebBrowser } from 'expo';
import { MonoText } from '../components/StyledText';
import {createStackNavigator} from 'react-navigation';
import RegistrationScreen from './screens/RegistrationScreen';
export default class HomeScreen extends React.Component {
static navigationOptions = {
header: null,
};
onPress = () => {
this.props.navigation.navigate('Home')
};
render() {
return (
<View style={{flex: 1}}>
<View style={[{flex: 1}, styles.container]}>
<Text style={styles.getStartedText}>Manage my locks</Text>
</View>
<View style={{flex: 2}}/>
<Button style={{flex: 1}}title="Registration Test" onPress={this.onPress}>
</Button>
<Button style={{flex: 1}} title="Add new lock">
</Button>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
...Platform.select({
android: {
marginTop: StatusBar.currentHeight + 15
}
})
},
developmentModeText: {
marginBottom: 20,
color: 'rgba(0,0,0,0.4)',
fontSize: 14,
lineHeight: 19,
textAlign: 'center',
},
contentContainer: {
paddingTop: 30,
}
});
createStackNavigator({
Register: {
screen: RegistrationScreen
},
Home: {
screen: HomeScreen
}
});
RegistrationScreen 的标头如下所示:
import React from 'react';
import {
AppRegistry,
Button,
StyleSheet,
Text,
TextInput,
TouchableOpacity,
View
} from 'react-native';
import {createStackNavigator} from 'react-navigation';
import HomeScreen from './screens/HomeScreen';
主屏幕和注册屏幕位于同一目录中。我只是为了测试而这样做,但我想确保一旦按下按钮,我就可以从这个屏幕导航到注册。
解决方案
由于您的 HomeScreen 和 RegistrationScreen 位于同一目录中,因此您的 HomeScreen 导入应该是
import HomeScreen from './HomeScreen';
代替
import HomeScreen from './screens/HomeScreen';
和 RegistrationScreen 应该是
import RegistrationScreen from './RegistrationScreen';
代替
import RegistrationScreen from './screens/RegistrationScreen';
推荐阅读
- python - 得到错误:浮点对象不能被解释为整数,当试图打印一个数字的主要因素时
- spring - What is the difference between @SpringBootConfiguration vs @Configuration?
- python - 2d numpy 数组,使每个值都是以它为中心的 3x3 正方形的总和
- android - 尝试加载文件路径时Android中的权限ACCESS_ALL_DOWNLOADS
- ios - 如何在 Swift 5.0 / Xcode 中使用强制解包
- javascript - 当用户点击容器时,如何让我的模式关闭?
- docker - 单个容器上的多个 docker 网络
- php - 在 PHP 中查找数组的值
- c# - Acumatica:TaxRegistrationID 更改时更新供应商状态
- shell - eval printf 从命令行工作,但不在脚本中