如何在 onPress 道具中调用多个功能?

Rap*_*a-Y 6 javascript react-native

我有一个功能,例如

const functionOne = parameterOne => {
 [...]
}
Run Code Online (Sandbox Code Playgroud)

像这样在 TouchableOpacity 的 onPress 道具中调用:

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

它奏效了。

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

const functionTwo = parameterTwo => {
 [...]
}
Run Code Online (Sandbox Code Playgroud)

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

<MiddleComponent onChange={functionTwo} />

<FunctionOneComponent onChange={props.onChange} />

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

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

这也很好用。

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

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

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

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

这导致了错误。现在,我明白我没有看到解决方案,因为我不明白“这个”是什么的细节,但我自己搜索也没有导致更好的理解,所以我决定寻求帮助。

Jac*_*wan 2

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

onPress={() => functionOne(text)}
Run Code Online (Sandbox Code Playgroud)

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

onPress={() => { functionOne(text); props.onChange(value); } }
Run Code Online (Sandbox Code Playgroud)