0

我有一个小问题。我想将两个动作传递给一个按钮,但我似乎无法弄清楚。我正在使用 react-native-router-flux 库。我尝试过这样的事情,但它并没有真正起作用。

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

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

4

1 回答 1

3

onPressprop 接受一个函数,并且只有一个函数。Javascript 中没有自动组合两个函数的语法。您需要创建一个执行这两个操作的新函数。

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

一些注意事项:

  1. 我将事件参数传递给两个动作,因为只传递一个函数(即onPress={Actions.Main1})本身也会传递这个参数。在您的情况下,这可能不是必需的。
  2. 这段代码的一个小问题是每次render调用这个组件的函数时都会创建一个新函数。这并不可怕,但也不理想。将来考虑一下。我在这篇文章中包含了该优化,因为 a)我们看不到组件的其余实现,b)我认为这个问题非常初级,足以让我们担心主要概念。
于 2017-03-20T20:23:33.353 回答