1

我最近将我的代码迁移到颤振 2.0,但我收到此错误:错误:getter 'tabbarcatinfo' 的返回类型是 'dynamic',它不是其 setter 'tabbarcatinfo' 的类型 'List' 的子类型'。

import 'package:flutter/material.dart';
List _tabbarcatinfo = [];

class TabBarCategoriesInfo with  ChangeNotifier{
  static late List<String> name;

  get tabbarcatinfo {
    return _tabbarcatinfo;
  }

  set tabbarcatinfo(List Listita) {
    _tabbarcatinfo = Listita;
    notifyListeners();
  }

  void addData(List Listita) {
    _tabbarcatinfo.add(Listita);
    //notifyListeners();
  }
}
4

3 回答 3

3

您没有在代码中正确定义类型。

像这样使用它。

List<String> _tabbarcatinfo = [];

class TabBarCategoriesInfo with ChangeNotifier {
  static late List<String> name;

  List<String> get tabbarcatinfo {
    return _tabbarcatinfo;
  }

  set tabbarcatinfo(List<String> Listita) {
    _tabbarcatinfo = Listita;
    notifyListeners();
  }

  void addData(String item) {
    _tabbarcatinfo.add(item);
    //notifyListeners();
  }
}

如果您对某行有任何特别的疑问,请发表评论,我将通过回答进行详细说明。

于 2021-05-23T07:26:40.940 回答
1

试试这个

get tabbarcatinfo {
  return [..._tabbarcatinfo] as List<dynamic>;
}

List<dynamic>编辑:在 return 语句中添加演员表。

于 2021-05-23T04:49:20.747 回答
0

在获取之前需要设置一个类型。

列表获取 tabbarcatinfo

还有一个问题,你的列表没有类型?如果我没记错的话,它一定有任何类型。

于 2021-05-23T04:50:55.317 回答