You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Navigation点击自定义MainButton无法触发屏幕跳转问题求助

问题根因

你在App.js中给<MainButton>传入的onPress属性没有被自定义组件内部接收绑定,所以点击事件不会触发,不存在「内联代码覆盖内部配置」的问题,是属性透传缺失导致的。

修复方案

修改MainButton.js中的TouchableOpacity组件,把外部传入的onPress属性绑定上去即可:

import React from 'react';
import {View, Text, StyleSheet, TouchableOpacity, } from 'react-native';

const MainButton = props => {
    // 给TouchableOpacity加上onPress属性,透传外部传入的回调
    return <TouchableOpacity onPress={props.onPress}>
        <View style={styles.button}>
            <Text style={styles.buttonText}>{props.children}</Text>
        </View>
    </TouchableOpacity>
}

// 后面的样式和导出代码保持不变即可

可选优化

你当前App.js里的Nar路由组件是无意义的封装,可以直接把NarScreen指定为路由组件,简化代码:

// App.js中修改Stack.Screen配置即可,无需单独写Nar函数组件
<Stack.Screen name="Nar" component={NarScreen} />

内容的提问来源于stack exchange,提问作者PatMatrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:24:03