如何在“react-native-router-flux”中绑定到 onPress 事件的函数中调用 Actions.xxx

Posted

技术标签:

【中文标题】如何在“react-native-router-flux”中绑定到 onPress 事件的函数中调用 Actions.xxx【英文标题】:How to call Actions.xxx in functions binded to onPress event in 'react-native-router-flux' 【发布时间】:2016-09-17 17:40:01 【问题描述】:

我正在使用 RN0.24 和 Flux3.26。 RN 版本可能已过时,但当我使用 onPress=Actions.xxx 时,Actions.xxx 工作正常 但是,一旦我将其放入 onPress=this.function 之类的函数中,并且在函数中我会这样做 function(event) Actions.xxx; 然后它不工作 有人能帮忙吗?

【问题讨论】:

我不知道 RN,但是原生 javascript 事件将一个 element 绑定到回调中,如果您将回调 Actions.xxx 作为事件侦听器附加到回调中,事件在该 element 上作为上下文触发 this,它将this 绑定到其中,但是如果您将function(event) Actions.xxx 附加到其中,那么它将this 绑定到匿名函数中并且您的Action.xxx 具有引用Actionthis,您可以尝试重新绑定this,例如function(event) Action.xxx.bind(this) ,如果有帮助,请告诉我。 对不起,代码错误,请使用function(event) Action.xxx.bind(this)() function(event) Action.xxx.call(this) @Vaclav 刚刚解决了,哈哈,调用 Actions.xxx() 有效,谢谢! 【参考方案1】:

这是this的问题,我想你可以试试:

render() 
    const login = () =>  Action.login() 
    return (
      <View style=styles.container>
        <Text style=styles.welcome onPress= login >
          Go to Login
        </Text>
      </View>
    );
  

希望这对他有帮助。

【讨论】:

大声笑我自己想通了,但这似乎与我的解决方案相似,所以我会接受正确的。

以上是关于如何在“react-native-router-flux”中绑定到 onPress 事件的函数中调用 Actions.xxx的主要内容,如果未能解决你的问题,请参考以下文章

如何在表单提交后保留文本(如何在提交后不删除自身?)

如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?

在 Avkit 中如何使用这三行代码,以及如何将音乐静音”

如何在 JDBC 中启动事务?

如何在 Fragment 中调用 OnActivityResult 以及它是如何工作的?

如何使用 Firebase 在 Web 上托管 Flutter?它的效果如何?