React-Native-Webview: ожидается, что nodeHandle будет не нулевым - PullRequest
1 голос
/ 05 апреля 2019

Я использую react-native-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 показывает, что в weViewRef

существует метод goBack

Код, для которого выбрасывает nodeHandle expected to be non-null, можно найти здесь https://github.com/react-native-community/react-native-webview/blob/master/src/WebView.ios.tsx

Я не могу понять, в чем проблема getWebViewHandle и почему nodeHandle равно нулю.

1 Ответ

1 голос
/ 26 апреля 2019

У меня была такая же проблема.Оказывается, что моя реакция-родная версия слишком низкая.Требуется минимум 0,57.После обновления до 0.59.5 и других зависимостей эта проблема исчезает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...