【问题标题】:Call two functions with onPress in react native在本机反应中使用 onPress 调用两个函数
【发布时间】:2020-05-28 03:46:25
【问题描述】:

我有以下两个按钮:

        <View style={styles.button}>
          <Button title="ADD" onPress={createDocumentHandler}/>
        </View>
        <View style={styles.button}>
          <Button title="CANCEL" color="red" onPress={props.onCancel}/>
        </View>

我希望第一个按钮同时触发“createDocumentHandler”函数和“props.onCancel”函数

我认为它会像 onPress={createDocumentHandler, props.onCancel} 一样简单,但由于某种原因,它只会触发第二种方法

【问题讨论】:

  • 你为什么不做一个函数,调用两者,然后用按钮调用呢?
  • 因为任何时候我尝试这样做 {props.onCancel} 都不会被调用
  • onPress={() =&gt; { createDocumentHandler(); props.onCancel(); }} (另外:您尝试的方法无效,因为 a, b 的计算结果为 b
  • 这能回答你的问题吗? Call multiple functions onClick ReactJS
  • @ChrisG 不确定是否有参数或this 上下文,所以可能是function (...args) { createDocumentHandler.call(this, ...args); props.onCancel.call(this, ...args); },但也许可以肯定的是,没有。

标签: javascript react-native


【解决方案1】:

试试这个

onCancel() => {
    {...}
 };
 function createDocumentHandler()
 {
     {...}
     return onCancel();
 }

function render(){
    return(
        <Button title="ADD" onPress={createDocumentHandler}/>
    )
}

【讨论】:

    【解决方案2】:

    您创建一个自定义函数 createDocumentHandler 为:

    createDocumentHandler = async() => {
    // execute in whatever order
      let a =  await function1();
      let b =  await function2();
    }
    

    【讨论】:

      【解决方案3】:
      <Button title="ADD" onPress={createDocumentHandler}/>
      createDocumentHandler = () => {
         actionA();
         actionB();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-14
        • 2017-11-20
        • 2018-10-28
        • 2018-06-22
        • 1970-01-01
        • 2016-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多