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

React Native中TouchableOpacity组件点击无响应问题求助

TouchableOpacity点击无响应的修复方案

核心原因

你的RoundedButton组件未将父组件传入的onPress回调绑定到内部的TouchableOpacity组件上,导致点击操作无法触发预期的函数。

修复代码

修改RoundedButton组件,将onPress回调绑定到TouchableOpacity:

function RoundedButton({style = {}, textStyle = {}, size = 125, ...props}) {
  return (
    <TouchableOpacity 
      style={[styles(size).radios, style]}
      onPress={props.onPress} // 绑定点击回调
    >
      <Text style={[styles(size).text, textStyle]}>
        {props.title}
      </Text>
    </TouchableOpacity>
  );
}

或者更简洁的方式,直接展开所有剩余props到TouchableOpacity上(自动包含onPress):

function RoundedButton({style = {}, textStyle = {}, size = 125, ...props}) {
  return (
    <TouchableOpacity 
      style={[styles(size).radios, style]}
      {...props} // 展开所有剩余props,包括onPress
    >
      <Text style={[styles(size).text, textStyle]}>
        {props.title}
      </Text>
    </TouchableOpacity>
  );
}

额外优化

你当前在Focus组件中,TextInput的onSubmitEditing仅用于更新tempItem,如果想保留回车提交的功能,可以直接在这里调用addSubject,无需中间状态:

<TextInput
  style={styles.textInput}
  onSubmitEditing={(event) => {
    addSubject(event.nativeEvent.text);
  }}
/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:10:32