【问题标题】:How to trigger another Touchable component's press event by tap a touchable component?如何通过点击一个可触摸组件来触发另一个可触摸组件的按下事件?
【发布时间】:2017-04-12 12:15:02
【问题描述】:

如何通过点击一个可触摸组件来触发另一个可触摸组件的按下事件?谢谢!

例子:-

<TouchableHighlight onPress={this._triggerSecond}>
  <Image
    style={styles.button}
    source={require('./myButton.png')}
  />
</TouchableHighlight>

如果用户将点击第一个 TouchableHighlight,那么它应该触发第二个 TouchableHighlight。

<TouchableHighlight>
  <Image
    style={styles.button}
    source={require('./myButton.png')}
  />
</TouchableHighlight>

【问题讨论】:

    标签: javascript reactjs react-native


    【解决方案1】:

    对于那些仍需要以编程方式触发印刷机的人,我找到了解决方案。首先,您需要使用 ref 将您的可触摸对象绑定到 this

    <TouchableOpacity
      onPress={() => alert("click")}
      ref={(touchable) => this._touchable = touchable}
    >
    

    那么当你想在不点击的情况下启动 onPress 时,只需调用

    this._touchable.touchableHandlePress()
    

    【讨论】:

    • 当我执行这一行时,它说 this._touchable.touchableHandlePress() is no function.
    【解决方案2】:

    好吧,我想你可以认为这只是另一个TouchableHighlight调用相同的方法,例如:

    // First one 
    <TouchableHighlight onPress={this._method}>
      <Image
        style={styles.button}
        source={require('./myButton.png')}
      />
    </TouchableHighlight>
    
    // Second one
    <TouchableHighlight onPress={this._method}>
      <Image
        style={styles.button}
        source={require('./myButton.png')}
      />
    </TouchableHighlight>
    

    这样,当点击时两个组件都将调用相同的method

    【讨论】:

    • 谢谢。但我只想知道,如何以编程方式触发原生反应中的触摸事件。
    • 第一个 touchable 将触发一个功能以及触发第二个 touchable 组件。这将触发另一个函数。
    • 我看到 AFAIK 没有来自 TouchableHighlight 的方法可以像网络上的 click() 一样调用它,但我想您可以将该逻辑放入同一类的方法中。在调用method1 后,您可以从那里调用method2
    • 谢谢你。
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多