react-native - navigation.navigate('Baslica')}> 不导航任何屏幕
问题描述
我试图对使用TouchableOpacity
. 它应该将我导航到另一个屏幕。我做了我在其他屏幕上所做的事情,但这次它不起作用,也没有出现任何错误。在 Navigation.js 上,当我手动提供 initialRouteName 时,会出现屏幕,但是当我单击按钮时,什么也没有发生。
主屏幕:
import React from "react";
import { StyleSheet, View, StatusBar, Image, ImageBackground, TouchableOpacity} from "react-native";
const HomeScreen = ({ navigation }) => {
return (
<View>
<TouchableOpacity onPress={() => navigation.navigate('Baslica')}>
<ImageBackground
source={require("../../assets/HomeScreen/baslicaButton.png")}
resizeMode="contain"
style={styles.baslicaButton}
imageStyle={styles.baslicaButton_imageStyle}
>
<Image
source={require("../../assets/HomeScreen/baslicaText.png")}
resizeMode="contain"
style={styles.baslicaText}
></Image>
</ImageBackground>
</TouchableOpacity>
</View>
);
}
export default HomeScreen;
导航JS:
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import IntroScreen from './src/screens/IntroScreen';
import HomeScreen from './src/screens/HomeScreen';
import BaslicaScreen from './src/screens/BaslicaScreen';
const navigator = createStackNavigator(
{
Intro: IntroScreen,
Home: HomeScreen,
Baslica: BaslicaScreen
},
{
initialRouteName: "Intro",
}
);
export default createAppContainer(navigator);
解决方案
你应该navigation
像这样使用参数:
this.props.navigation.navigate("yourScreen", { ParamName: Valu });
像这样编辑您的代码:
import React from "react";
import { StyleSheet, View, StatusBar, Image, ImageBackground, TouchableOpacity} from "react-native";
const HomeScreen = ({ navigation }) => {
return (
<View>
<TouchableOpacity onPress={() =>
this.props.navigation.navigate('Baslica')}>
<ImageBackground
source={require("../../assets/HomeScreen/baslicaButton.png")}
resizeMode="contain"
style={styles.baslicaButton}
imageStyle={styles.baslicaButton_imageStyle}
>
<Image
source={require("../../assets/HomeScreen/baslicaText.png")}
resizeMode="contain"
style={styles.baslicaText}
></Image>
</ImageBackground>
</TouchableOpacity>
</View>
);
}
export default HomeScreen;
并像这样编辑此代码:
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import IntroScreen from './src/screens/IntroScreen';
import HomeScreen from './src/screens/HomeScreen';
import BaslicaScreen from './src/screens/BaslicaScreen';
const navigator = createStackNavigator(
{
Intro: {screen:IntroScreen},
Home: {screen:HomeScreen},
Baslica: {screen:BaslicaScreen},
},
{
initialRouteName: "Intro",
}
);
export default createAppContainer(navigator);
推荐阅读
- python - 如何将返回的 one-hot 编码列合并到原始数据帧?
- java - 在模拟器中按下按钮时音乐不会开始
- vb.net - 将行从 DataTableA 移动到 DataTableB 并更新到 Datarow
- python - 纸浆:lpDot() 有什么作用,如何使用它
- firebase - 在 Firebase 中托管多个具有动态内容的站点
- python - 如何提取给定的单元格位置?
- javascript - 使用行跨度动态呈现数据
- javascript - 我在哪里可以找到 Cast to ObjectId 的来源在我的代码中为模型“Item”的路径“_id”处的值“create”失败
- javascript - for循环内的回调
- automapper - 具有干净架构和 AutoMapper 的 asp.net 核心 - 将 DTO 通过服务层传递到控制器