【问题标题】:Problem with opening screen with onPress in React Native在 React Native 中使用 onPress 打开屏幕的问题
【发布时间】:2020-06-18 12:18:57
【问题描述】:

我没有任何错误,但我仍然无法打开我想要的屏幕。这是我的 FlatList 项目:

let categories = [ 
        {
            screenName : Player,
            name : "Category 1",
            img : require("../Assets/Slika.jpg"),
        },

这是带有 onPress 的 TouchableOpacity

return (
            <View style={styles.container}>
                <FlatList
                    data={categories}
                    showsHorizontalScrollIndicator={false}
                    numColumns={categories.length / 5}
                    showsVerticalScrollIndicator={false}
                    keyExtractor={(item, index) => index.toString()}
                    renderItem = {({item, index}) => {
                        return (
                        <TouchableOpacity onPress={() => item.screenName}>
                        <Surface style={styles.surface}>
                            <ImageBackground
                            source={item.img} 
                            style={styles.img}
                            blurRadius={0.5}>
                        <Icon name="music" color="#fff" size={22}/>
                        <Text style={styles.name}>{item.name}</Text>
                            </ImageBackground>
                        </Surface>
                        </TouchableOpacity>
                        );
                    }}
                />
            </View>

【问题讨论】:

  • “打开屏幕”是什么意思?您的意思是导航到新屏幕吗?
  • 这是绑定问题。试试 onPress={this.navigateToScreen('your_screen')}
  • 你只是将一个变量推送到 onPress 函数而不是里面的执行函数。
  • 在类别数组的对象中尝试screenName:"Player"
  • 是的,我想打开新屏幕,但是 FlatList 中的项目很少,而且每个项目都必须是不同的屏幕。

标签: javascript android ios reactjs react-native


【解决方案1】:

你必须使用导航:

import { useNavigation } from '@react-navigation/native';
...
export default function ClassName() {
const navigation = useNavigation();

function navigateTO(pageName) {
 navigation.navigate(pageName);
}
<TouchableOpacity onPress={navigateTO(item.screenName})>

【讨论】:

  • 你可以提交吗?
  • 看,有很多相关的东西,例如:1)您是否为每个新页面创建了页面? 2) 你家中的所有东西都路由吗?
  • 我将提交 5-10 分钟,然后将链接发送给您...
  • 这里是提交...谢谢您的帮助,我是 react native 的新手,所以您编写的代码现在对我来说有点混乱...
  • 我去看看
猜你喜欢
  • 2017-09-01
  • 2018-09-04
  • 2020-05-30
  • 1970-01-01
  • 2019-03-12
  • 2020-11-13
  • 1970-01-01
  • 1970-01-01
  • 2019-05-22
相关资源
最近更新 更多