【问题标题】:Have a class extending Text StatelessWidget be StatefulWidget有一个扩展 Text StatelessWidget 的类是 StatefulWidget
【发布时间】:2022-08-19 18:59:12
【问题描述】:

我知道在 Flutter 组合中优先于继承,但对于一个用例,我需要我的类扩展 Text,因为参数只接受 Text 类而不是所有 Widgets

事情是我需要在这个新班级中处理状态,因为我想知道我是否可以拥有

这个class NeedsToBeStateful extends Text {} 是Text extends StatefulWidget 而不是class Text extends StatelessWidget


class NeedsToBeStateful extends Text {
  NeedsToBeStateful(
    super.data,
  );

  @override
  Text build(BuildContext context) {
    return Text(
      \'Text\',
    );
  }
}

我正在考虑做这样的事情,但它没有工作


class NeedsToBeStateful extends Text with StatefulWidget{
  NeedsToBeStateful(
    super.data,
  );

  @override
  Text build(BuildContext context) {
    return Text(
      \'Text\',
    );
  }
}
  • 我认为这是不可能的。但我不是 100% 确定。我也很好奇是否有办法做到这一点

标签: flutter dart


【解决方案1】:

不确定这是否可行,或者是否可以使用,但也许这样的事情是可能的

class MyText extends Text {
  MyText(super.data);

  @override
  Widget build(BuildContext context) {
    return MyState(child: super.build(context));
  }
}

class MyState extends StatefulWidget {
  final Widget child;
  const MyState({Key? key, required this.child}) : super(key: key);

  @override
  State<MyState> createState() => _State();
}

class _State extends State<MyState> {
  
  @override
  Widget build(BuildContext context) {
    return widget.child;
  }
}

【讨论】:

    猜你喜欢
    • 2018-12-30
    • 2020-05-12
    • 1970-01-01
    • 2023-01-16
    • 2020-04-06
    • 2021-06-24
    • 2019-05-24
    • 2019-07-09
    • 2021-09-19
    相关资源
    最近更新 更多