Для моего проекта Reaction 360 в моем файле client.js
есть следующий код:
import { ReactInstance } from 'react-360-web';
import AsteroidsModule from './AsteroidsModule';
import * as THREE from 'three';
function init(bundle, parent, options = {}) {
const scene = new THREE.Scene();
const r360 = new ReactInstance(bundle, parent, {
// Add custom options here
fullScreen: true,
nativeModules: [
new AsteroidsModule(scene),
],
Problem
***************************************
frame: () => {
AsteroidsModule.printOut('hello');
},
***************************************
...options,
});
........code...
Далее у меня есть следующий код в отдельном файле AsteroidsModule
.Код взят из презентации наactvr и имеет следующее содержимое:
import { Module } from 'react-360-web';
import * as THREE from 'three';
export default class AsteroidsModule extends Module {
constructor(scene) {
// The name of the module in NativeModules
super('AsteroidsModule');
this.scene = scene;
this.time = 0;
this.meshes = [];
}
printOut(string) {
console.log(string);
}
populate() {
....code....
}
render() {
....code......
}
}
React 360 при инициализации имеет опцию frame:
, которая позволяет мне выполнять код при каждом рендеринге кадров.Код, который я хочу выполнить в этом случае для тестирования - это вызов метода AsteroidsModule.printOut('hello')
.В консоли это приводит к ошибке:
Uncaught TypeError: _AsteroidsModule2.default.printOut is not a function
Я не понимаю, почему я получаю эту ошибку.Я импортировал нужный модуль поверх файла.Я пытался выбрать это по частям, но я не знаю, почему это не рендеринг.Может ли кто-нибудь помочь мне с возможной проблемой?