React Native:如何向按钮添加两个动作?

时间:2017-03-20 20:17:49

标签: react-native reactive-programming react-native-ios react-native-router-flux react-android

我有一个小问题。我想把两个动作传递给一个按钮,但我似乎无法弄明白。我正在使用react-native-router-flux库。我试过这样的事,但它确实没有用。

如果有人能提供帮助那就太棒了。谢谢!



<Button 
  onPress={Actions.Main1 && Actions.Tab2} 
  style={{ width: 90, height: 90 }} >
      <Text>Show</Text>
</Button>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

onPress道具有一个功能,只有一个功能。在Javascript中没有自动组合两个函数的语法。您需要创建一个执行这两个操作的新函数。

<Button 
  onPress={(e) => {
      Actions.Main1(e);
      Actions.Tab2(e);
  }} 
  style={{ width: 90, height: 90 }} >
      <Text>Show</Text>
</Button>

一些注意事项:

  1. 我将event参数传递给了两个动作,因为只传递其中一个函数(即onPress={Actions.Main1})本身也会传递此参数。在您的情况下,这可能不是必需的。
  2. 此代码的一个小问题是每次调用此组件的render函数时都会创建一个新函数。这并不可怕,但也不理想。考虑一下将来。我在这篇文章中包含了这个优化,因为a)我们没有看到组件的其余部分实现,b)我认为这个问题对于我们只是担心主要概念是不够的。