错误:'SingleTickerProviderStateMixin'类不能用作mixin,因为它扩展了一个非Object类。

7

我正在学习flutter的动画,使用SingleTickerProviderStateMixin时,IDE给了我这个错误:

类'SingleTickerProviderStateMixin'不能被用作mixin,因为它扩展了一个不是Object的类

我的代码:

  import 'package:flutter/material.dart';

  class AnimationControllerOutputBody extends StatefulWidget with  {
    @override
    _AnimationControllerOutputBodyState createState() =>
        new _AnimationControllerOutputBodyState();
  }

  class _AnimationControllerOutputBodyState extends State<AnimationControllerOutputBody> with SingleTickerProviderStateMixin {

    AnimationController animation;

    @override
    void initState() {
      super.initState();
      animation = new AnimationController(
        vsync: this,
        duration: new Duration(seconds: 3),
      );
      animation.addListener(() {
        this.setState(() {});
      });
    }

    @override
    Widget build(BuildContext context) {
      return new GestureDetector(
        child: new Center(
          child: new Text(
            animation.isAnimating
                ? animation.value.toStringAsFixed(3)
                : "Tap me!",
            style: new TextStyle(
              fontSize: 50.0,
            ),
          ),
        ),
        onTap: () {
          animation.forward(from: 0.0);
        },
      );
    }

    @override
    void dispose() {
      animation.dispose();
      super.dispose();
    }
  }

我的代码有什么问题?


为什么 AnimationControllerOutputBody 上有一个 with - Rémi Rousselet
我在这里找到了这个链接:https://sergiandreplace.com/flutter-animations-the-basics/。只是运行他们的代码,但是出现了这个错误。 - Yeahia2508
你的链接没有这样的“with”。 - Rémi Rousselet
检查博文中部或使用此类进行搜索。"基本示例"标题 - Yeahia2508
我在谈论的是 AnimationControllerOutputBody 而不是 _AnimationControllerOutputBodyState - Rémi Rousselet
显示剩余3条评论
2个回答

11

有趣。为什么需要这个? - Rémi Rousselet
工作成功了!!再次感谢 ^_^ - Yeahia2508
4
这是一个实验性功能,Dart团队计划在Dart 2.0之后删除并重新设计Mixin,但现在仍保留在实验形式下,因为Flutter依赖它。 - Günter Zöchbauer
这取代了我回答中提到的旧实验性superMixin实现。 - Günter Zöchbauer
现在它说enableSuperMixins已被弃用。 - MSpeed
显示剩余2条评论

5

在我的情况下,我使用了SingleTickerProviderStateMixin,请改用TickerProviderStateMixin代替SingleTickerProviderStateMixin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接