Trzepotanie: animowany kontroler synchronizuje ten problem

0

Pytanie

Staram się zrealizować kod z przykładu oficjalnych dokumentów, ale to się nie uda:

...

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

W nim czytamy, że: The argument type '_MyHomePageState' can't be assigned to the parameter type 'TickerProvider'.

Tak więc, VSCode podkreśla vsync: this ust.

Mam najnowsza wersja 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

Dlaczego występuje ten błąd i jak go naprawić bez obniżenia wersji SDK?

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

Najlepsza odpowiedź

2

W zachwycie, en AnimationController potrzebuje TickerProvider.

Gdy en AnimationController jest tworzony z Statetrzeba mieć State w celu rozszerzenia lub TickerProviderStateMixin lub SingleTickerProviderStateMixin. Ostatnio bardziej zoptymalizowana dla przypadków, gdy trzeba użyć tylko jeden giełdowy, co powinno być w większości przypadków.

Dlatego w kodzie, który opublikowali, należy zmienić:

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

2021-11-24 00:20:42

Dziękuję za odpowiedź, powinnam być bardziej ostrożnym podczas czytania dokumentacji, ale problem debugowania nie jest tak oczywiste, jak mogłoby być. Ponadto, wiele tematów do obniżenia SDK dla rozwiązania tego problemu zbyt mylące.
mr.boris

W innych językach

Ta strona jest w innych językach

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