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

React Native自定义单选按钮点击无响应问题排查求助

自定义单选按钮无响应问题修复

核心问题及解决方案

1. onPress函数中map缺少return语句

原代码里map用大括号包裹箭头函数,但没显式返回处理后的对象,导致map返回全是undefined的数组,状态根本没更新。

修复后的onPress函数:

const onPress = option => {
  setIsAvailable(prevState => 
    prevState.map(isAvailableOption => {
      // 必须显式return处理后的选项对象
      return isAvailableOption.id === option.id
        ? {...isAvailableOption, selected: true}
        : {...isAvailableOption, selected: false};
    })
  );
};

额外优化:用函数式更新(prevState)避免闭包导致的旧状态引用问题,状态更新更可靠。

2. Row组件内部未正确绑定外部传入的onPress回调

Row组件里TouchableOpacity的onPress绑定的是内部未定义的变量,不是外部传进来的onPress props,点击事件根本触发不了状态更新逻辑。

修复后的Row组件单选按钮部分代码:

rightComponent === 'radio' ? (
  <TouchableOpacity
    style={styles.radioBtn}
    onPress={props.onPress} // 绑定外部传入的onPress回调
    key={key}>
    {isSwitched === true ? (
      <>
        <Ionicons
          name={'radio-button-on-outline'}
          style={{...styles.rightIcon, ...rightIconColor}}
        />
      </>
    ) : (
      <>
        <Ionicons
          name={'ellipse-outline'}
          style={{...styles.rightIcon, ...rightIconColor}}
        />
      </>
    )}
  </TouchableOpacity>
) : (...)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:15:27