Нарушение Инварианта с Реакцией-Исключительно

Я пытаюсь внедрить в приложение приложение " native-canvas". При входе на экран, содержащий холст, в версии, созданной с react-native run-ios, я получаю следующую ошибку:

Invariant Violation: requireNativeComponent: "RNCWKWebView" was not found in the UIManager.

This error is located at:
 in RNCWKWebView (at WebView.ios.js:297)
 in RCTView (at View.js:45)
 in View (at WebView.ios.js:300)
 in WebView (at Canvas.js:148)
 in RCTView (at View.js:45)
 in View (at Canvas.js:147)
 in Canvas (at LapDetails.tsx:47)
 in RCTView (at View.js:45)
 in View (at LapDetails.tsx:38)
 in LapDetails (at ComponentWrapper.js:29)
 in WrappedComponent (at renderApplication.js:34)
 in RCTView (at View.js:45)
 in View (at AppContainer.js:98)
 in RCTView (at View.js:45)
 in View (at AppContainer.js:115)
 in AppContainer (at renderApplication.js:33)

getNativeComponentAttributes
 a90c6db6-7158-4812-8a98-ea48c1a859f3:49643:5
<unknown>
 a90c6db6-7158-4812-8a98-ea48c1a859f3:49596:14
Object.exports.get
 a90c6db6-7158-4812-8a98-ea48c1a859f3:43914:20
createInstance
 a90c6db6-7158-4812-8a98-ea48c1a859f3:22099:56
completeWork
 a90c6db6-7158-4812-8a98-ea48c1a859f3:28453:34
completeUnitOfWork
 a90c6db6-7158-4812-8a98-ea48c1a859f3:30472:32
performUnitOfWork
 a90c6db6-7158-4812-8a98-ea48c1a859f3:30635:18
workLoop
 a90c6db6-7158-4812-8a98-ea48c1a859f3:30645:30
renderRoot
 a90c6db6-7158-4812-8a98-ea48c1a859f3:30716:13

Ошибка при входе в представление во второй раз:

Invariant Violation: View config not found for name RNCWKWebView.

This error is located at:
 in RNCWKWebView (at WebView.ios.js:297)
 in RCTView (at View.js:45)
 in View (at WebView.ios.js:300)
 in WebView (at Canvas.js:148)
 in RCTView (at View.js:45)
 in View (at Canvas.js:147)
 in Canvas (at LapDetails.tsx:47)
 in RCTView (at View.js:45)
 in View (at LapDetails.tsx:38)
 in LapDetails (at ComponentWrapper.js:29)
 in WrappedComponent (at renderApplication.js:34)
 in RCTView (at View.js:45)
 in View (at AppContainer.js:98)
 in RCTView (at View.js:45)
 in View (at AppContainer.js:115)
 in AppContainer (at renderApplication.js:33)

 Object.exports.get
  ReactNativeViewConfigRegistry.js:94:6
 createInstance
  ReactNativeRenderer-dev.js:3946:49
 completeWork
  ReactNativeRenderer-dev.js:13385:25
 completeUnitOfWork
  ReactNativeRenderer-dev.js:15892:25
 performUnitOfWork
  ReactNativeRenderer-dev.js:16103:11
 workLoop
  ReactNativeRenderer-dev.js:16115:23
 renderRoot
  ReactNativeRenderer-dev.js:16219:6
 performWorkOnRoot
  ReactNativeRenderer-dev.js:17198:6
 performWork
  ReactNativeRenderer-dev.js:17099:6

Теперь интересная часть. Когда я запускаю приложение полностью скомпилированное из XCode, я могу войти в представление, и отображается холст. Я пробовал автоматическое повторное связывание, переустановку, различные устройства и ручное повторное связывание, потому что те, где наиболее упоминается, исправляют проблемы такого типа. Но ничто не меняет результат для версии, созданной с react-native run-ios,

Я почти уверен, что проблема где-то с моей ссылкой на веб-сайт response-native-webview, но я не могу понять, где и в основном сделал все, что упоминается в руководствах по установке...

Мой проект Android в настоящее время не работает, поэтому я не могу предоставить дополнительную информацию о поведении Android.

В случае, если вам интересно, это мнение:

import React, { Component } from 'react';
import Canvas from 'react-native-canvas';

class App extends Component {

 handleCanvas = (canvas) => {
  const ctx = canvas.getContext('2d');
  ctx.fillStyle = 'purple';
  ctx.fillRect(0, 0, 100, 100);
 }

 render() {
  return (
   <Canvas ref={this.handleCanvas}/>
  );
 }
}

1 ответ

Решение

Обычно такие проблемы вызваны неправильными связанными нативными зависимостями. Ты можешь попробовать react-native link <package name>, но здесь, похоже, это не так, потому что полностью сработало приложение.

Некоторые старые файлы сборки мешали разработке, и я решил эту проблему, удалив весь проект и снова клонировав его с помощью git. чтобы сделать это без git, вам нужно удалить все ваши файлы сборки в android/ и ios/ и удалить ваши node_modules (это не нужно делать, но ради безопасности).

Если после этого вы по-прежнему сталкиваетесь с проблемами, вы можете подумать, что первой проблемой является представление вашего дела, особенно если вы не можете даже скомпилировать сборку.

Другие вопросы по тегам