Flutter - 无法将 class 字段传递给子组件

Flutter - Can't pass class field into child component

Flutter 新手,我想开始让我的应用程序更加动态。我想首先将数据传递到我的 Text() 小部件,但是我收到了这个奇怪的空错误并且不知道为什么会这样。

目前我正在这样做,我传入 name 并在容器中的文本小部件中查看它:

class NameContainer extends StatelessWidget {
const NameContainer({ required this.name, Key? key}) : super(key : key);

final String name;

@override
Widget build(BuildContext context) {
  return Container(
    margin: const EdgeInsets.all(20.0),
    child: const Align(
      alignment: Alignment.center,
      child: Text(
        name,
        textAlign: 
        TextAlign.center, 
        style: const TextStyle(
          fontWeight: FontWeight.bold,
        )
      );
    )
  );
}

但是它给我一个 A value of type 'Null' can't be assigned to a parameter of type 'String' in a const constructor. Try using a subtype, or removing the keyword 错误。

但是,当我移除 Container 并且 return 只是这样的文本时:

class NameContainer extends StatelessWidget {
const NameContainer({ required this.name, Key? key}) : super(key : key);

final String name;

@override
Widget build(BuildContext context) {

  return Text(
    name,
    textAlign: 
    TextAlign.center, 
    style: const TextStyle(
      fontWeight: FontWeight.bold,
    )
  );
}

可以走了吗?我看不出这里有什么不同...任何人都可以分享一些关于为什么会这样的见解吗?

您收到错误是因为您在 Align 小部件之前使用了 const 关键字,并且 Align 小部件不是构造函数类型。

class NameContainer extends StatelessWidget {
 NameContainer({ required this.name, Key? key}) : super(key : key); // const remove from here 

final String name;

@override
Widget build(BuildContext context) {
  return Container(
    margin: const EdgeInsets.all(20.0),
    child:  Align( // here remove const
      alignment: Alignment.center,
      child: Text(
        name,
        textAlign: 
        TextAlign.center, 
        style: const TextStyle(
          fontWeight: FontWeight.bold,
        )
      )
    )
  );
}