React Native 项目结构问题
React Native Project Structure Issue
我刚开始使用 react native 和 expo,我一直在一遍又一遍地重组文件夹,因为我 运行 遇到多个错误,其中 js 文件找不到位于 . /asses/navigation/the_image.png。我让它工作的唯一一次是将所有 js 文件放在 App.js 中,并将 App.js 放在“./”下,并将图片放在同一位置。
这是错误的样子:error
这就是我的项目结构:project structure
构建我的项目的正确方法是什么?如何获取我的 profile.js 等文件以在资产中查找图像?
messages.js 代码:
import 'react-native-gesture-handler';
import React, { useState } from 'react';
import { Image, StyleSheet, TouchableOpacity, View, TextInput } from 'react-native';
export default function messages({ navigation })
{
const [filtertext, setfilter] = useState('');
return(
<View style={styles.home_container}>
<View style={styles.home_background}>
<TextInput
style= {styles.filter}
placeholder= "Search"
placeholderTextColor= "#96a7af"
onChangeText={filtertext => setfilter(filtertext)}
defaultValue={filtertext}
/>
<Image source= {require ('./assets/navigation/3_Elements_Circled_Navigation_Message_On.png')}/>
<TouchableOpacity onPress={() =>navigation.navigate('Home')} style={styles.home_button}>
<Image source= {require ('./assets/buttons/new_message_icon.png')} style={styles.new_msg_buton}/>
</TouchableOpacity>
<TouchableOpacity onPress={() =>navigation.navigate('Profile')} style={styles.profile_button}>
<Image source= {require ('./assets/buttons/profile_icon.png')}/>
</TouchableOpacity>
</View>
</View>
);
}
const styles = StyleSheet.create(
{
new_msg_buton:
{
position:'absolute',
height: 60,
width: 60,
top: -696,
left: 129,
},
filter:
{
position: 'absolute',
height: 54,
width: 275,
top: -660,
left: 19,
paddingLeft: 20,
borderColor: 'black',
borderRadius: 23,
borderTopWidth: 3,
borderBottomWidth: 3,
borderLeftWidth: 3,
borderRightWidth: 3,
}
})
使用./
指的是文件所在的当前目录
使用 ../dir_onelevel_above
指的是 dir_onelevel_above
,因为您在文件夹结构中已经上一级。
也就是说,您应该需要 ../assets/navigation/icon.png
才能访问来自 messages.js
的图像
我刚开始使用 react native 和 expo,我一直在一遍又一遍地重组文件夹,因为我 运行 遇到多个错误,其中 js 文件找不到位于 . /asses/navigation/the_image.png。我让它工作的唯一一次是将所有 js 文件放在 App.js 中,并将 App.js 放在“./”下,并将图片放在同一位置。
这是错误的样子:error
这就是我的项目结构:project structure
构建我的项目的正确方法是什么?如何获取我的 profile.js 等文件以在资产中查找图像?
messages.js 代码:
import 'react-native-gesture-handler';
import React, { useState } from 'react';
import { Image, StyleSheet, TouchableOpacity, View, TextInput } from 'react-native';
export default function messages({ navigation })
{
const [filtertext, setfilter] = useState('');
return(
<View style={styles.home_container}>
<View style={styles.home_background}>
<TextInput
style= {styles.filter}
placeholder= "Search"
placeholderTextColor= "#96a7af"
onChangeText={filtertext => setfilter(filtertext)}
defaultValue={filtertext}
/>
<Image source= {require ('./assets/navigation/3_Elements_Circled_Navigation_Message_On.png')}/>
<TouchableOpacity onPress={() =>navigation.navigate('Home')} style={styles.home_button}>
<Image source= {require ('./assets/buttons/new_message_icon.png')} style={styles.new_msg_buton}/>
</TouchableOpacity>
<TouchableOpacity onPress={() =>navigation.navigate('Profile')} style={styles.profile_button}>
<Image source= {require ('./assets/buttons/profile_icon.png')}/>
</TouchableOpacity>
</View>
</View>
);
}
const styles = StyleSheet.create(
{
new_msg_buton:
{
position:'absolute',
height: 60,
width: 60,
top: -696,
left: 129,
},
filter:
{
position: 'absolute',
height: 54,
width: 275,
top: -660,
left: 19,
paddingLeft: 20,
borderColor: 'black',
borderRadius: 23,
borderTopWidth: 3,
borderBottomWidth: 3,
borderLeftWidth: 3,
borderRightWidth: 3,
}
})
使用./
指的是文件所在的当前目录
使用 ../dir_onelevel_above
指的是 dir_onelevel_above
,因为您在文件夹结构中已经上一级。
也就是说,您应该需要 ../assets/navigation/icon.png
才能访问来自 messages.js