react原生应用程序中的可按按钮无法工作

uinbv5nw  于 2023-01-31  发布在  React
关注(0)|答案(1)|浏览(149)

我有两个非常简单的组件,Start组件中的pressables无法正常工作,导航或console.log也不行(),我甚至不能用元素检查器检查它们...我是第一次使用react native的ImageBackground,所以我不知道这是否与它有关?尽管,我试着删除它,但我仍然不能按任何东西...以下是我的启动组件的代码:

import React from 'react';
import {ImageBackground, Pressable, StyleSheet, Text, View} from 'react-native';
import { normalize } from '../../utils/helper';
import { colors } from '../../utils/styles';

const image = require('../../assets/images/start-page/start-page-background.png');

export default function Start({navigation}) {
    const handleStartPress = () => {
        console.log('hi');
        navigation.navigate('Home');

    };

  return (
    <View style={styles.container}>
      <ImageBackground source={image} style={styles.image}>
        <Pressable style={styles.startButton} onPress={() => handleStartPress()}>
            <Text style={styles.startText}>Έναρξη</Text>
        </Pressable>
        <View style={styles.footer}>
            <Pressable style={[styles.footerPressable, styles.conditions]}><Text style={styles.footerText}>blah</Text></Pressable>
            <Text style={styles.code}>blah</Text>
            <Pressable style={[styles.footerPressable, styles.policy]} onPress={() => console.log('policy')}><Text style={styles.footerText}>blah</Text></Pressable>
        </View>
      </ImageBackground>
    </View>
  );
}

const styles = StyleSheet.create({
    container: {
        flex: 1,
    },
    image: {
        flex: 1,
    },
    startButton: {
        backgroundColor: colors.main.blue,
        borderRadius: normalize(10),
        paddingHorizontal: normalize(40),
        paddingVertical: normalize(12),
        alignSelf: 'center',
        position: 'absolute',
        bottom: normalize(180),
    },
    startText: {
        color: 'white',
        fontSize: normalize(30),
    },
    footer: {
        paddingVertical: normalize(10),
        position: 'absolute',
        bottom: normalize(15),
    },
    conditions: {
        borderRightColor: 'black',
        borderRightWidth: normalize(1),
        paddingLeft: normalize(10),
        paddingRight: normalize(10),
    },
    policy: {
        paddingLeft: normalize(10),
        //zIndex: 999,
    },
    footerText: {
        fontSize: normalize(16),
        lineHeight: normalize(16),
        color: 'black',
    },
    code: {
        color: colors.main.blue,
        fontWeight: '700',
        fontSize: normalize(16),
        lineHeight: normalize(16),
        borderRightColor: 'black',
        borderRightWidth: normalize(1),
        paddingHorizontal: normalize(10),
    },
  });
7gs2gvoe

7gs2gvoe1#

我运行了你的代码,它工作正常。但是我没有任何关于你的项目的更多信息(比如你的RN版本),所以我只能做一些有根据的猜测。
无响应可能是由于应用程序的其他部分阻塞了JS线程并阻止事件循环将消息从队列传递到堆栈而导致的。
要对此进行调试,您可以切换perfMonitor以查看JS线程帧速率是否已降至0。您还可以尝试不渲染应用中的其他元素(例如,仅渲染App.tsx中的此按钮),以查看问题是否已解决。

相关问题