React Native 导航堆栈不起作用

发布于 2025-01-20 16:08:00 字数 2509 浏览 5 评论 0原文

我对反应本机导航有疑问。 x 一切看起来都进展顺利。我没有看到任何有问题的终端。我还删除了这段代码

<Stack.Navigator>
      <Stack.Screen name="Login" component={LoginScreen} />
  </Stack.Navigator>

,并将这段代码添加到

<Text>test message</Text>

我的程序中。 你可以看到

但是我添加了堆栈导航代码,我看到了空白页面。你能看到这张图片

我该如何解决这个问题?

App.js 的完整代码

import { StatusBar } from 'expo-status-bar';
import { StyleSheet, Text, View} from 'react-native';
import Navigation from './views/navigation';
import ErrorScreen from './views/ErrorScreen/ErrorScreen';

export default function App() {
  return (
    <View style={styles.container}>
      <Stack.Navigator>
          <Stack.Screen name="Login" component={LoginScreen} />
      </Stack.Navigator>      </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

LoginScreen.js 的完整代码

import { View, Text, Image, StyleSheet, useWindowDimensions, KeyboardAvoidingView} from 'react-native';
import React, {useState} from 'react'
import Logo from '../../assets/fdslogo.png';
import CustomInput from '../components/CustomInput/CustomInput';
import CustomButton from '../components/CustomButton/CustomButton';
import { useNavigation } from "@react-navigation/native";

const LoginScreen = () => {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const {height} = useWindowDimensions();

  return (
    <KeyboardAvoidingView behavior='padding'>
    <View style={styles.root}>
     <Image 
        source={Logo}
        resizeMode="contain"
        style={styles.logo}
         />

<CustomInput placeholder="E-Posta Adresinizi Giriniz"
        value={email}
        setValue={setEmail}/> 
      <CustomInput placeholder="Şifrenizi Giriniz"
        value={password}
        setValue={setPassword}
        secureTextEntry/>


    <CustomButton  text="Giriş Yap" />
    </View>
    </KeyboardAvoidingView>
  )
}

const styles = StyleSheet.create({
  root: {
      alignItems: 'center',
      paddingTop: 0,
  },

  logo: {
     
      maxWidth: 300,
      maxHeight: 200,
  },


});

export default LoginScreen;

I've problem about react native navigation. x
Everything seem run good. I don't see any problem terminal. Also I deleted this code

<Stack.Navigator>
      <Stack.Screen name="Login" component={LoginScreen} />
  </Stack.Navigator>

and I add this code

<Text>test message</Text>

my program work. you can see

But I add stack navigation code and I see blank page.can you see this picture

How can I solve this problem?

Full code from App.js

import { StatusBar } from 'expo-status-bar';
import { StyleSheet, Text, View} from 'react-native';
import Navigation from './views/navigation';
import ErrorScreen from './views/ErrorScreen/ErrorScreen';

export default function App() {
  return (
    <View style={styles.container}>
      <Stack.Navigator>
          <Stack.Screen name="Login" component={LoginScreen} />
      </Stack.Navigator>      </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

Full code from LoginScreen.js

import { View, Text, Image, StyleSheet, useWindowDimensions, KeyboardAvoidingView} from 'react-native';
import React, {useState} from 'react'
import Logo from '../../assets/fdslogo.png';
import CustomInput from '../components/CustomInput/CustomInput';
import CustomButton from '../components/CustomButton/CustomButton';
import { useNavigation } from "@react-navigation/native";

const LoginScreen = () => {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const {height} = useWindowDimensions();

  return (
    <KeyboardAvoidingView behavior='padding'>
    <View style={styles.root}>
     <Image 
        source={Logo}
        resizeMode="contain"
        style={styles.logo}
         />

<CustomInput placeholder="E-Posta Adresinizi Giriniz"
        value={email}
        setValue={setEmail}/> 
      <CustomInput placeholder="Şifrenizi Giriniz"
        value={password}
        setValue={setPassword}
        secureTextEntry/>


    <CustomButton  text="Giriş Yap" />
    </View>
    </KeyboardAvoidingView>
  )
}

const styles = StyleSheet.create({
  root: {
      alignItems: 'center',
      paddingTop: 0,
  },

  logo: {
     
      maxWidth: 300,
      maxHeight: 200,
  },


});

export default LoginScreen;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文