Flutter: AnimationController vsync această problemă

0

Problema

Am încercat să pună în aplicare codul de documente oficiale exemplu , dar nu reușește:

...

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 spune că: The argument type '_MyHomePageState' can't be assigned to the parameter type 'TickerProvider'.

Deci, VSCode evidențiază vsync: this param.

Am ultima versiune 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

De ce această eroare apare și cum să se stabilească acest lucru fără declasare de versiunea SDK?

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

Cel mai bun răspuns

2

În Flutter, o AnimationController are nevoie de un TickerProvider.

Atunci când un AnimationController este creat dintr-un State, ar trebui să aveți State pentru a prelungi fie TickerProviderStateMixin sau SingleTickerProviderStateMixin. Acesta din urmă este mult mai optimizat pentru atunci când aveți nevoie doar de a utiliza un singur ticker, care ar trebui să fie cel mai de caz.

Astfel, în codul postat de tine, ar trebui să se schimbe:

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

2021-11-24 00:20:42

Mulțumesc pentru răspuns, trebuia să fiu mai atent când citești documentația, dar a depana problema, sugerând că nu este atât de evidentă ca ar putea fi. De asemenea, multe subiecte pentru declasarea SDK pentru a rezolva această problemă sunt confuze prea mult.
mr.boris

În alte limbi

Această pagină este în alte limbi

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