_AsteroidsReact 360 Module2.default.printOut не является функцией (Невозможно вызвать метод модуля из client.js) - PullRequest
0 голосов
/ 23 января 2019

Для моего проекта 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

Я не понимаю, почему я получаю эту ошибку.Я импортировал нужный модуль поверх файла.Я пытался выбрать это по частям, но я не знаю, почему это не рендеринг.Может ли кто-нибудь помочь мне с возможной проблемой?

...