【问题标题】:The function 'notifyListeners' isn't defined. Try importing the library that defines 'notifyListeners',未定义函数“notifyListeners”。尝试导入定义“notifyListeners”的库,
【发布时间】:2021-12-25 05:00:44
【问题描述】:

由于某种原因,虽然我已经导入了库,但我收到了这个错误。我试过 flutter clean 但没有任何效果。

    import 'package:flutter/cupertino.dart';
import 'package:provider/provider.dart';

import 'package:flutter/foundation.dart';
import 'dart:convert';

class Product with ChangeNotifier {
  final String id;
  final String title;
  final String description;
  final double price;
  final String imageUrl;
  bool isFavourite; //This is not final as it will change again again

  Product(
      {required this.description,
      required this.id,
      required this.imageUrl,
      this.isFavourite = false,
      required this.price,
      required this.title});
}

void toggleFavouriteStatus(bool isFavourite) {
  isFavourite = !isFavourite;
  notifyListeners();
}

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies flutter-web


    【解决方案1】:

    您将方法放在类的外面,而它应该放在里面:

    import 'package:flutter/cupertino.dart';
    import 'package:provider/provider.dart';
    import 'package:flutter/foundation.dart';
    import 'dart:convert';
    
    class Product with ChangeNotifier {
      // ...
    
      void toggleFavouriteStatus(bool isFavourite) {
        isFavourite = !isFavourite; 
        notifyListeners();
      }
    }
    

    此外,您可能不需要此方法中的参数,因为它只是切换值:

      void toggleFavouriteStatus() {
        isFavourite = !isFavourite; 
        notifyListeners();
      }
    

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 2020-05-12
      • 1970-01-01
      • 2011-11-07
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      相关资源
      最近更新 更多