【问题标题】:Why onpress function not working in react native为什么 onpress 功能在本机反应中不起作用
【发布时间】:2018-11-29 07:15:39
【问题描述】:

类文件

 export class salon extends Component {

    constructor(props) {
    super(props);
    this.state = {
      status : true,
      };  
    }

     _toggleModal(){
     Alert.alert('hello');
     }

}

我在侧边栏中使用导航选项

我在可触摸的不透明度中添加了 onpress 功能,但它仅适用于触摸

 <TouchableOpacity onPress={() =>  {this._toggleModal}}>
 </TouchableOpacity>

【问题讨论】:

  • 您忘记从箭头函数体调用该方法,请使用onPress={() =&gt; {this._toggleModal()}}onPress={this._toggleModal}
  • @MayankShukla 已经尝试过了,但是同样的错误,顺便说一句,感谢您的快速响应
  • @MayankShukla 当我尝试这个时 onPress={() => {this._toggleModal()}} 我得到错误 LIKE This: undifined is not a function(evaluting't_his5._toggleModal()')
  • TouchableOpacity_toggleModal 被定义为同一个类?可以分享完整代码吗?
  • 两者都定义在同一个类中

标签: reactjs react-native react-native-navigation


【解决方案1】:

您应该将您的函数绑定到构造函数或使用中。

在构造函数中:

export class salon extends Component {
    constructor(props) {
       super(props);
       this.state = {
           status : true,
       };  
       this._toggleModal = this._toggleModal.bind(this);
    }

     _toggleModal(){
     Alert.alert('hello');
     }
}

使用中:

 <TouchableOpacity 
     onPress={() =>  {this._toggleModal.bind(this)}}>
 </TouchableOpacity>

查看documentation了解更多信息。

【讨论】:

  • 它不起作用我得到一个错误 undefined is not an object(evaluating'_this5._toggleModal.bind')
  • 我做了一个简单的例子来看看。 codesandbox.io/s/ly5my4kzz9 如果这不能解决你的问题,我们应该看到你的 TouchableOpacity,Alert 组件来解决它,编辑你的问题。
  • 它不起作用,我也将 TochableOpacity 更改为 TouchableHighlight 但同样的错误
【解决方案2】:

您可以使用像这样的箭头函数onPress={() =&gt; {this._toggleModal()}}

【讨论】:

  • 我知道这个功能可以工作,但我没有工作
  • 这是我的项目,但如果您分享您的电子邮件 ID,我将分享我的代码发送电子邮件
【解决方案3】:

尝试在没有箭头函数的情况下调用您的函数,如下所示:onPress={this._toggleModal}

【讨论】:

    猜你喜欢
    • 2020-08-02
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    相关资源
    最近更新 更多