Am попытке подключить AFRAME внутри реагируют родной, но при запуске в эмуляторе я получаю эту ошибку:React/AFRAME ошибка объекта правопреемником
One of the sources for assign has an enumerable key on the prototype chain. Are you trying to assign a prototype property? We don't allow it, as this is an edge case that we do not support. This error is a performance optimization and no spec compliant.
Я использую AFRAME 0.5.0 и React-Native 0.41.2
Ошибка выбрасывается из строки 56 polyfills.js и относится к этому разделу aframe-master.js: 55729.
Object.assign(THREE.MTLLoader.prototype, THREE.EventDispatcher.prototype, {
Есть ли способ обойти это? Нужно ли мне модифицировать aframe, чтобы использовать другое задание, или я могу каким-то образом преодолеть это?
Я запускаю очень простой мир привет, он просто не пытается загрузить зависимости. В других связанных проблемах люди говорили, что они обошли это, используя lodash.assign или Object.defineProperties - это жизнеспособное решение для этого? Тем не менее, я могу вернуться к более старой версии реакции-native, но мне идеально хотелось бы использовать последнюю версию с кадром.
https://github.com/facebook/react-native/issues/5507
https://github.com/facebook/react-native/issues/3634
** UPDATE ** Ok Я попытался откате, установлен реагировать родной 0.36.1 и переключил сайт я загружаю в WebView использовать AFRAME 0.3.2 ,
код у меня в React родное приложение это:
Ok Я попытался откате, установлен реагировать родной 0.36.1 с помощью rninit, и переключился на сайт я загружаю в WebView, чтобы использовать AFRAME 0.3.2.
код у меня в React родное приложение это:
import React, { Component } from 'react';
// import ReactDOM from 'react-dom';
import {
AppRegistry,
WebView
} from 'react-native';
export default class test4 extends Component {
render() {
return (
<WebView source={{uri: 'http://[theurl]/test.html'}}/>
);
}
}
AppRegistry.registerComponent('test4',() => test4);
AFRAME приложение это:
<!DOCTYPE html>
<html>
<head>
<title>A-Frame walkthrough (final)</title>
<script src="/aframe.js"></script>
</head>
<body>
<a-scene>
<a-assets>
<img id="circle" src="circle.png"/>
</a-assets>
<a-sky src="Ephesus4_1.jpg" rotation="0 -130 0"></a-sky>
</a-scene>
</html>
И когда я открываю отладчик, проверив WebView из хрома : // проверять # устройства, я получаю этот вывод:
Mozilla/5.0 (Linux; Android 6.0; Android SDK built for x86_64 Build/MASTER; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36
aframe.js:54681 Recalculating device params.
aframe.js:54718 User agent: Mozilla/5.0 (Linux; Android 6.0; Android SDK built for x86_64 Build/MASTER; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36
aframe.js:54719 Pixel width: 2562
aframe.js:54720 Pixel height: 1442
aframe.js:54762 No DPDB device match.
aframe.js:54683 New device parameters:
aframe.js:54684 null
aframe.js:54692 Failed to recalculate device parameters.Dpdb.recalculateDeviceParams_ @ aframe.js:54692
aframe.js:54654 Fetching DPDB...
aframe.js:53106 Using fallback Android device measurements.
aframe.js:56388 Failed to load viewer profile: TypeError: Cannot read property 'getItem' of null
at Emitter.ViewerSelector (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:56386:36)
at VRDisplay.CardboardVRDisplay (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:52607:26)
at WebVRPolyfill.populateDevices (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:56694:17)
at WebVRPolyfill.getVRDisplays (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:56743:8)
at new THREE.VRControls (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:66848:13)
at Object.119.../lib/three (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:66227:16)
at s (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:1:620)
at http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:1:671
at Object.122../bind (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:66358:25)
at s (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:1:620)ViewerSelector @ aframe.js:56388
aframe.js:53096 Uncaught TypeError: Cannot read property 'distortionCoefficients' of undefined
aframe.js:54662 Successfully loaded online DPDB.
aframe.js:54681 Recalculating device params.
aframe.js:54718 User agent: Mozilla/5.0 (Linux; Android 6.0; Android SDK built for x86_64 Build/MASTER; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36
aframe.js:54719 Pixel width: 2562
aframe.js:54720 Pixel height: 1442
aframe.js:54762 No DPDB device match.
aframe.js:54683 New device parameters:
aframe.js:54684 null
aframe.js:54692 Failed to recalculate device parameters.Dpdb.recalculateDeviceParams_ @ aframe.js:54692
http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/favicon.ico Failed to load resource: the server responded with a status of 404 (Not Found)
Любые рекомендации будут оценены!
Я также получаю это в самом эмуляторе андроида:
com.facebook.react.common.JavascriptException: { «стек»: "Ошибка: Не удалось выполнить„importScripts“на„WorkerGlobalScope“: сценарий на http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false "не удалось загрузить. \ п в executeApplicationScript (http://localhost:8081/ebuggerWorker.js:207) \ п на OnMessage (http://localhost:8081/debuggerWorker.js:38.5)"}
я получаю ту же ошибку, даже если я переключиться на не AFRAME сайте грузили в WebView.
Привет Тоби, не могли бы вы опубликовать версию reactjs и AFRAME вы используете? –
Yep Aframe 0.5.0 и React-native 0.41.2, добавили к вопросу –
Мое успешное развертывание использовало aframe 0.3.2 и React-native 0.36.1. Я бы рекомендовал вам перейти на тестирование. Также, основываясь на ваших исследованиях, проблема, похоже, больше связана с реакцией на основе конца. Вы пытались загрузить собственный веб-просмотр в своем приложении, а не реагировать? –