React-Native-Webview:预期nodeHandle不为null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-Native-Webview:预期nodeHandle不为null相关的知识,希望对你有一定的参考价值。

我使用react-native-webview渲染webview。当我从webview中的一个页面导航到另一个页面然后尝试使用this.webviewref.goBack()返回时,我得到了nodeHandle expected to be non-null的例外。

这是我的一段代码

 <View style={{ flex: 1 }}>
        <Header
          headingText={headerText}
          onpress={() => {
            // this.dispatchCustomEvent(BACK_PRESS);
            if (this.canGoBack) {
              this.webViewRef.goBack();
            } else NavigationActions.pop();
          }}
        />
        <WebView
          source={{ uri: "http://localhost:3001/invite/" }}
          bounces={false}
          javascriptEnabled={true}
          ref={webViewRef => (this.webViewRef = webViewRef)}
          // injectedJavaScript={patchPostMessageJsCode}
          onMessage={event => {
            const { type, data } = JSON.parse(event.nativeEvent.data);
            console.log({ type });
            console.log({ data });
            this.handleEvent(type, data);
          }}
          onNavigationStateChange={navState =>
            (this.canGoBack = navState.canGoBack)
          }
        />
      </View>

控制台记录this.webViewRef显示weazRef中存在goBack方法

投掷nodeHandle expected to be non-null的代码可以在这里找到https://github.com/react-native-community/react-native-webview/blob/master/src/WebView.ios.tsx

我无法理解getWebViewHandle的问题是什么,为什么nodeHandle为null。

答案

我有同样的问题。事实证明,我的react-native版本太低了。它需要至少0.57。升级到0.59.5和其他依赖项后,此问题消失。

以上是关于React-Native-Webview:预期nodeHandle不为null的主要内容,如果未能解决你的问题,请参考以下文章

WebView(react-native-webview)在 Expo SDK36 中获取错误代码 -1

无法通过 react-native-webview 访问相机

有啥方法可以在 react-native-webview 中禁用 hapticFeedback

react-native-webview 如何注入 javascript?

如何在 iOS 的 WebView(react-native-webview) 中设置自定义字体?

react-native-webview禁止缩放