Flutter: AnimationController vsync bu sorun

0

Soru

Resmi dokümanlar örneğinden kod uygulamaya çalışıyorum ancak başarısız oluyor:

...

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

Böyle yazıyor : The argument type '_MyHomePageState' can't be assigned to the parameter type 'TickerProvider'.

Yani, VSCode vurgular vsync: this param.

Flutter'ın en son sürümüne sahibim:

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

Bu hata neden oluşur ve SDK sürümünü düşürmeden bunu nasıl düzeltebilirim?

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

En iyi cevabı

2

Çarpıntıda, bir AnimationController ihtiyaç TickerProvider.

Bir zaman AnimationController bir yaratılıyor State olması gereken State uzatma ya TickerProviderStateMixin veya SingleTickerProviderStateMixin. İkincisi, yalnızca çoğu durumda olması gereken tek bir senedi kullanmanız gerektiğinde daha optimize edilmiştir.

Yani sana gönderilen kodu değiştirmelisiniz :

class _MyHomePageState extends State<MyHomePage> -e doğru class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin

2021-11-24 00:20:42

Cevap için teşekkür ederim, belgeleri okurken daha dikkatli olmalıydım, ancak hata ayıklama sorunu olabileceği kadar açık değil. Ayrıca, bu sorunu çözmek için SDK'yı düşürmek için birçok konu çok fazla kafa karıştırıcıdır.
mr.boris

Diğer dillerde

Bu sayfa diğer dillerde

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