Flutter: AnimationController vsync este problema

0

Pregunta

Estoy tratando de implementar el código de oficial docs ejemplo , pero no:

...

class _MyHomePageState extends State<MyHomePage> {

  late AnimationController controller;

  @override
  void initState() {
    super.initState();

    controller = AnimationController(duration: Duration(seconds: 3), vsync: this);
  }

...

enter image description here

Se dice que: The argument type '_MyHomePageState' can't be assigned to the parameter type 'TickerProvider'.

Así, destaca VSCode vsync: this param.

Tengo la última versión de Flutter:

Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 18116933e7 (6 weeks ago) • 2021-10-15 10:46:35 -0700
Engine • revision d3ea636dc5
Tools • Dart 2.14.4

¿Por qué se produce este error y cómo solucionar este problema sin degradación de la versión del SDK?

dart flutter flutter-animation
2021-11-23 23:19:38
1

Mejor respuesta

2

En el Flutter, una AnimationController las necesidades de un TickerProvider.

Cuando un AnimationController está siendo creado a partir de un State, usted debe tener el State para ampliar cualquiera de las TickerProviderStateMixin o SingleTickerProviderStateMixin. El último es el más optimizado para cuando usted sólo tendrá que utilizar un solo ticker, que debe ser la mayoría de los casos.

Así, en el código que has publicado, debe cambiar:

class _MyHomePageState extends State<MyHomePage>a class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin

2021-11-24 00:20:42

Gracias por la respuesta, yo debería haber sido más cuidadoso al leer la documentación, pero depuración problema lo que sugiere que no es tan obvio como podría ser. También muchos temas para degradar SDK para resolver este problema se confunde demasiado.
mr.boris

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................