可触摸的不透明标题反应原生

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可触摸的不透明标题反应原生相关的知识,希望对你有一定的参考价值。

我希望我的反应导航栏中的标题可以点击并在我点击时弹出一个菜单,我试图首先得到一个日志或警告弹出,但是当我点击时屏幕呈现时它会打开它

这是一个链接,我在其中使用onPress向标题添加了一个自定义组件,但它只触发onRender

https://snack.expo.io/r10TGyieE

我究竟做错了什么?

答案

https://snack.expo.io/HJvXPJix4

你需要让它调用onPress={() => this.someAction()}而不是onPress={this.someAction()}

另一答案

就像Dadsquatch说的那样,

这个:

onPress={this.someAction()}

被认为是直接代码,一旦应用程序到达它所在的行,就会执行它(这就是为什么它在启动时执行,尽管你在启动时没有提到它)

但是当你使用时:

onPress={() => this.someAction()}

你告诉编译器,这是onPress发生时要执行的函数。你可以看到它是一个箭头函数格式。

另一答案

您的onPress事件没有绑定,因此它会在您运行应用程序时首先触发。

当使用Es6箭头功能时,你的函数默认绑定.onPress={()=>this.someFunction()}

否则你需要手动绑定onPress={this.someFunction.bind(this)}来调用你的功能。

class LogoTitle extends React.Component {
  render() {
    return (
      <TouchableOpacity onPress={()=>alert('test')}>
        <Text style={{ color: "white", fontWeight:'bold' }}> List Layout</Text>
      </TouchableOpacity>
    );
  }
}
另一答案

正如塔雷克所说,你可以使用它

要不然

onPress={this.someAction}

作为onPress方法调用一个函数,所以你可以直接写函数名。

以上是关于可触摸的不透明标题反应原生的主要内容,如果未能解决你的问题,请参考以下文章

可触摸的不透明标题 React Native

当按下另一个可触摸的不透明度时,一个可触摸的不透明度不会按下

可触摸不透明度在本机反应中无法正常工作? v0.66.1

如何在 React Native 的平面列表中的可触摸不透明度内执行函数?

将触摸传递给下的视图

反应原生:不透明视图中的透明视图