模拟器上运行发现TouchableOpacity触摸事件不可用



  • 刚开始学习,在模拟器上运行,发现TouchableOpacity中的元素可以点击触摸但是无法弹出ALERT窗口 但在刚启动项目的时候可以弹出一次,之后无论怎么点击触摸都无反应。

    代码如下
    export default class test extends Component {
    a() {
    return(alert("123456"))
    }
    render() {
    return (
    <View style={styles.container}>
    <TouchableOpacity OnPress={this.a()}>
    <Text style={styles.welcome}>
    Welcome to React Native!
    </Text>
    </TouchableOpacity>
    </View>
    )
    }
    }

    XCODE和安卓模拟器上均是这个问题 代码修改过很多次,都是这个问题



  • export default class test extends Component {
      a() {
        alert("123456");//这里
      }
      render() {
        return (
          <View style={styles.container}>
            <TouchableOpacity onPress={this.a}> {/*这里,还有onPress写法好像错了吧*/}
              <Text style={styles.welcome}>
                Welcome to React Native!
              </Text>
            </TouchableOpacity>
          </View>
        )
      }
    }
    


  • @HermitCarb 这样也试过,还有直接用官网关于TOUCHABLE的DEMO和别人的代码,在模拟器上就是可以点击,但无法弹出


  • administrators

    @ycyc1996 你的写法是错的(有括号表示声明时即执行,执行后的返回值赋值给onPress,而返回值其实是空。导致后来点击反而不执行), @HermitCarb 的写法是对的。

    如果改了写法点击还是不执行,检查是否模拟器上开启了slow animation。


登录后回复