简体   繁体   English

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

[英]How to pass 'this' from ClassA to ClassB?

I am trying to create a global class with multiple modules inside it. 我正在尝试创建一个包含多个模块的全局类。 I am rewriting the code from Javascript to Dart. 我正在将代码从Javascript重写为Dart。

Javascript 使用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)
  }
}

Dart

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());
}

After build I get this error: 构建后,我得到此错误:

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

Your Dart class should have a constructor that initializes the members and passes this when constructing the members: 您的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;
}

you're not quite using classes right, please go to this 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);
  }
}```

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM