如何将“ this”从ClassA传递到ClassB?

时间:2019-06-29 15:17:05

标签: javascript class flutter dart

我正在尝试创建一个包含多个模块的全局类。我正在将代码从Javascript重写为Dart。

JavaScript

import ModuleA from './modules/a'
import ModuleB from './modules/b'
import ModuleC from './modules/c'

class Parent {
  constructor() {
    this.moduleA = new ModuleA(this)
    this.moduleB = new ModuleB(this)
    this.moduleC = new ModuleC(this)
  }
}

飞镖

import 'modules/a.dart';
import 'modules/b.dart';
import 'modules/c.dart';

class Parent {
  ModuleA moduleA = ModuleA(parent: Parent());
  ModuleB moduleB = ModuleB(parent: Parent());
  ModuleC moduleC = ModuleC(parent: Parent());
}

构建后出现此错误:

[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: Stack Overflow

2 个答案:

答案 0 :(得分:1)

您的Dart类应该具有一个构造函数,该构造函数初始化成员并在构造成员时传递this

import 'modules/a.dart';
import 'modules/b.dart';
import 'modules/c.dart';

class Parent {
  Parent() {
    moduleA = ModuleA(parent: this);
    moduleB = ModuleB(parent: this);
    moduleC = ModuleC(parent: this);
  }

  ModuleA moduleA;
  ModuleB moduleB;
  ModuleC moduleC;
}

答案 1 :(得分:0)

您不太正确地使用类,请转到此link for an explanation

import ModuleA from './modules/a'
import ModuleB from './modules/b'
import ModuleC from './modules/c'

class Parent {
  constructor(){
    this.moduleA = new ModuleA(this);
    this.moduleB = new ModuleB(this);
    this.moduleC = new ModuleC(this);
  }
}```