如何在“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
具有引用Action
的this
,您可以尝试重新绑定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 中开始新的活动?