Как экспортировать объекты, которые поступают в качестве аргументов функции в JavaScript (React)? - PullRequest
0 голосов
/ 11 июля 2020

Позвольте мне четко объяснить проблему У меня есть класс, который находится в fileA, выглядит так

  // This is in FileA
import {twoClass} from "fileB"
class oneClass{
      public async functionA(varA){
              return value
   }
}
var twoClassObject = new twoClass()
var oneClassObject = new oneClass()
twoclassObject.funtionB(oneClassObject)

В fileB у меня есть twoClass, который выглядит как

// This is in FileB No import in File B
export class twoClass{ 
  returnedObject: any;
  public funtionB(objectOfOneClass){
    this.returnedObject = objectOfOneClass
    console.log(await this.returnedObject.functionA(arg)) // prints the value in consloe
  }
}

Как и я экспортируя этот класс, я должен иметь к нему доступ везде, где я импортирую класс, верно? Но в файле C если я сделаю это

// This is in FileC only should import File B but not File A
 import {twoClass} from 'fileB'
 var twoClassObj = new twoClass()
 console.log(await twoClassObj.returnedObject.functionA(arg))  // gives me an error TypeError: Cannot read property 'functionA' of undefined

1 Ответ

0 голосов
/ 11 июля 2020

В вашем файле C

 import {twoClass} from './fileB'
 var twoClassObj = new twoClass()
 console.log(twoClassObj.returnedObject.functionA(arg)) 
//here you are calling directly the returned object from twoClass, but actually returned object is empty as you haven't call the functionB till now with a parameter of onClassObject

То, что вы пытаетесь сделать, может быть достигнуто с помощью кода ниже:

файл C

import {twoClass} from './fileB'
import {oneClass} from './fileA'
var oneClassObj = new oneClass()

var twoClassObj = new twoClass()
console.log(await twoClassObj.functionB(oneClassObj))

Обновлено

в файлеB

import {oneClass} from './fileA'
class B {
    constructor() {
        this.returnedObject = new oneClass();
    }
     public funtionB(){
       return this.returnedObject.functionA(arg) // prints the value in consloe
  }
}

в файле C

import {twoClass} from './fileB'
var twoClassObj = new twoClass()
console.log(await twoClassObj.functionB())
...