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

无需转类组件 React函数组件切换图片仅显示checked.png如何解决

问题原因

代码中Image组件source属性的判断条件写法错误:
你写的{ check } === true是将一个包裹了check变量的对象和布尔值true做全等比较,对象和布尔值的全等比较结果永远为false,所以逻辑永远走到加载checked.png的分支,自然不会切换图片。

修正后的代码

直接判断check变量本身的值即可:

const SignUpScreen = () => {
  const [check, setCheck] = useState(false);

  const changeImage = () => {
    setCheck((prevCheck) => !prevCheck);
  };

  return (      
       <View>
        <Text>
          Select the box to change the image
        </Text>
        <TouchableOpacity onPress={changeImage}>
          <Image
            source={
              check === true
                ? require("../img/unchecked.png")
                : require("../img/checked.png")
            }
          />
        </TouchableOpacity>
      </View>
   );
};

export default SignUpScreen;
可选优化说明
  • check本身就是布尔类型,判断条件可以直接简写为check ? require("../img/unchecked.png") : require("../img/checked.png")
  • onPress绑定回调时不需要额外包裹一层箭头函数,直接传入changeImage即可,效果完全一致,代码更简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:15:03