如何用 StatelessWidget 子类中的其他最终成员初始化最终成员?
How to initialize final member with other final member in StatelessWidget subclass?
我有一个简单的 StatelessWidget,它在其构造函数中创建了一个新的 StatefulWidget。问题是要创建那个小部件,需要先创建另一个对象。然后当我将它传递给构造函数时,出现错误
错误:在初始值设定项中只能访问静态成员。
我在下面做了一个小例子,在这个例子中是成员'a'不能传递给B的构造函数。如何解决这个问题?我是否必须制作一个 StatefulWidget,即使它是不可变的?
import 'package:flutter/material.dart';
class Test extends StatelessWidget {
final A a;
final B b;
Test() : a = new A(), b = new B(a), super();
@override
Widget build(BuildContext context) {
return null;
}
}
class A {
}
class B {
B(A a);
}
不确定是否可以通过初始化器实现它,但至少你可以通过工厂方法实现同样的效果
class Test extends StatelessWidget {
final A a;
final B b;
Test._(this.a, this.b);
factory Test.create() {
final a = new A();
final b = B(a);
return Test._(a, b);
}
@override
Widget build(BuildContext context) {
return null;
}
}
我有一个简单的 StatelessWidget,它在其构造函数中创建了一个新的 StatefulWidget。问题是要创建那个小部件,需要先创建另一个对象。然后当我将它传递给构造函数时,出现错误
错误:在初始值设定项中只能访问静态成员。
我在下面做了一个小例子,在这个例子中是成员'a'不能传递给B的构造函数。如何解决这个问题?我是否必须制作一个 StatefulWidget,即使它是不可变的?
import 'package:flutter/material.dart';
class Test extends StatelessWidget {
final A a;
final B b;
Test() : a = new A(), b = new B(a), super();
@override
Widget build(BuildContext context) {
return null;
}
}
class A {
}
class B {
B(A a);
}
不确定是否可以通过初始化器实现它,但至少你可以通过工厂方法实现同样的效果
class Test extends StatelessWidget {
final A a;
final B b;
Test._(this.a, this.b);
factory Test.create() {
final a = new A();
final b = B(a);
return Test._(a, b);
}
@override
Widget build(BuildContext context) {
return null;
}
}