dart - 如何在Dart中通过 `this`获取当前的类实例并分配给final属性

标签 dart flutter instance-variables

我按照此code lab学习Dart / Flutter。我试图编辑一些源代码以使此代码更好。

class ChatScreenState extends State<ChatScreen> with TickerProviderStateMixin {
  final List<ChatMessageView> _chatMessageViewList = <ChatMessageView>[];
  final TextEditingController _textController = new TextEditingController();

  final AnimationController _chatMessageAnimationController;

  bool _isComposing = false;

  ChatScreenState() {
    _chatMessageAnimationController = new AnimationController(
      duration: new Duration(microseconds: 700),
      vsync: this,
    );
  }

...
}

我计划重用AnimationController的实例,因为我必须像创建列表一样创建它。但是,无论如何我都不能使用this关键字。我理解了此错误消息,但是我想知道有什么方法可以将this关键字分配给当前类的最终属性吗?

enter image description here

最佳答案

final

final AnimationController _chatMessageAnimationController;


_chatMessageAnimationController = ...

彼此矛盾。实例字段上的final表示只能在对象创建时对其进行初始化。这意味着甚至在构造函数体执行之前。

你只能用
  • 构造函数参数,例如this._chatMessageAnimationController
  • 初始化程序列出ChatScreenState() : _chatMessageAnimationController = ... {
  • 字段初始化程序final AnimationController _chatMessageAnimationController = ...;

  • 为该字段分配值。
    不幸的是,由于对象初始化尚未完成,因此这些方法均不允许您引用this

    关于dart - 如何在Dart中通过 `this`获取当前的类实例并分配给final属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53817414/

    相关文章:

    flutter - 关闭应用程序时保持 VideoPlayerController 播放音频

    arrays - 使用flutter从Firestore获取用户数组数据

    flutter - Dart/Flutter 主题类(class)代码的字符串转换

    flutter 改变焦点颜色和图标颜色但不起作用

    objective-c - 在 dealloc 中释放实例变量的正确方法,Objective C

    dart - Flutter,Scaffold的 float Action 按钮边距

    unit-testing - 在 Flutter 中使用参数模拟路由 - Dart

    Flutter Form Autovalidate 首次触发

    java - 在 Java 中如何使用变量?

    C++ 实例变量/指向堆中数组的指针