[英]navigate to a react native page from webview
我有一個使用webView呈現html代碼的react native應用程序,我使用postmessage在它們之間進行通信。 webview將發送消息以響應本機打開另一個響應本機頁面(例如,發送消息“打開登錄頁面”),因此我將在onMessage(事件)中接收它,然后當我想使用this.props.navigateTo
時說“可以無法讀取未定義的屬性navigationTo”。 我使用console.log(this)
並理解'this'是DedicatedWorkerGlobalScope ,我不能使用navigatTo()
。 在這種情況下(當我在DedicatedWorkerGlobalScope中時,我該如何使用navigatTo?)如何關閉或停止渲染Webview來做到這一點?
onMessage( event ) {
let post = JSON.parse(event.nativeEvent.data);
console.log(event)
switch(post.message){
case 'open login page':
console.log(this); // 'DedicatedWorkerGlobalScope'
this.props.navigateTo('login'); //'can not read property navigation of undefined'
break;
}
}
這是webview:
<WebView
// onNavigationStateChange={async (e) => {
// console.log(e);
// if (async() => await getKey('isLogged') === false)
// this.props.navigateTo('login') //its ok here
// }}
source={{uri: isAndroid ?'file:///android_asset/html/index.html'
:'./html/index.html'}}
ref={ webView => this.webView = webView }
onMessage={this.onMessage}
/>
我使用this.props.navigatTo()
進行導航,並且可以,但是在這種情況下,狀態不會改變,可以在此處運行,這是我的stacknavigator:
login: {
screen: Login
},
app: {
screen: App // webview defined here
},
我自己解決了問題:))我應該使用bind,OnMessage = {this.onMessage.bind(this)}我只是忘記了...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.