0

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

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

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

回答

1

onPress丙取一个函数,并且仅一个功能。 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)我认为这个问题对于我们来说只是担心主要概念已经很简单了。
+0

我真的很感谢答案。我尝试过,但出于某种原因,我每次按下按钮时都会收到错误:react-native-router-flux丢失了key = Main1的路由数据。如果我用一个动作做它它工作正常。我目前正在研究它,也许这是愚蠢的。我一个星期前就开始了React,所以它可能会有点压倒性。 – TheNewbie

+0

我明白了。很可能我们需要更多有关您的课程的信息。组件调用这个ES6类,还是使用'React.createClass'?此外,在何处/如何宣布“操作”功能? – aaronofleonard

相关问题