【问题标题】:How to call for more than one functions in onPress prop?如何在 onPress 道具中调用多个函数?
【发布时间】:2020-01-30 01:33:47
【问题描述】:

我有一个函数,比如

const functionOne = parameterOne => {
 [...]
}

在 TouchableOpacity 的 onPress 属性中调用如下:

[...] onPress={functionOne.bind(this, 'text')} [...]

它成功了。

在另一个组件上,我有一个功能,例如

const functionTwo = parameterTwo => {
 [...]
}

我通过道具传递给具有第一个功能的组件。像这样的:

<MiddleComponent onChange={functionTwo} />

<FunctionOneComponent onChange={props.onChange} />

在 onPress 上,我这样调用函数:

[...] onPress={props.onChange.bind(this, value)} [...]

这也很好用。

问题是,我不知道如何在同一个 onPress 上调用这两个函数。我已经阅读了this solution,但我无法弄清楚如何使其适应我的代码。我试过了

onPress{() => { functionOne.bind(this, 'text'); props.onChange.bind(this, value);}}

这使得这两个函数都不起作用,以及其他一些语法思想,例如

onPress{() => { this.functionOne.bind(this, 'text'); this.props.onChange.bind(this, value);}}

导致错误。现在,我知道我没有看到解决方案,因为我不了解“this”的详细信息,但是我自己搜索它也没有带来更好的理解,所以我决定寻求帮助。

【问题讨论】:

    标签: javascript react-native


    【解决方案1】:

    Function.prototype.bind() 返回函数而不是调用一个。而不是使用 .bind() 将文本传递给按钮,您可以这样做:

    onPress={() => functionOne(text)}
    

    在这种语法中,您可以像这样调用两个函数:

    onPress={() => { functionOne(text); props.onChange(value); } }
    

    【讨论】:

      猜你喜欢
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 2019-07-23
      • 2020-05-28
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      相关资源
      最近更新 更多