我可以在 MultiProvider 中使用 Future Provider 吗?但它可以从 API 中解决它们

Can I use Future Provider in MultiProvider? But it can resolve both of them from the API

我正在尝试使用 flutter Provider package 并且我有一个 API 我想在其中获取传输类型和路线标题的数据(这是沼泽class)。我决定使用 Future Provider ans,据我所知,如果我想使用 mu;tiproviders 我将需要在我的主要失败中使用 MultiProvider widhet 树的顶部。我按照文档中的描述做了同样的事情,但现在我有一个错误:“以下 ProviderNotFoundException 被抛出构建主页(脏): 错误:在此主页小部件上方找不到正确的 Provider

所以问题是:我可以在 Multiproviders 中使用 futureproviders 吗? 正如我在下面的代码中所做的那样。

其实我没明白我错在哪里

主文件:

Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        FutureProvider(
          create: (context) => transportService.fetchTranspot(),
          initialData: [],
          catchError: (context, error) {
            print(error.toString());
          },
        ),
        FutureProvider(
          create: (context) => transportService.fetchMarshes(),
          catchError: (context, error) {
            print(error.toString());
          },
          initialData: [],
        ),
      ],
      child: MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: Home(),
      ),

另一个传输类型:

List<TransportType> transport = Provider.of<List<TransportType>>(context);
    return Scaffold(
      appBar: AppBar(title: Text('Employees'),
      ),
      body: (transport == null)
      ? Center(child: CircularProgressIndicator(),)
      : ListView.builder(
        itemCount: transport.length,
        itemBuilder: (context,index){
          return ListTile(
            title: Text(transport[index].ttTitle),

沼泽也一样。我想把它做成一个列表

 final int ttId;
  final TransportService transportService = TransportService();

  EmployeePage({@required this.ttId});

  @override
  Widget build(BuildContext context) {
    List<Marshes> marsh = Provider.of<List<Marshes>>(context);
    return Scaffold(
        appBar: AppBar(title: Text('Employees'),
        ),
        body: (marsh == null)
            ? Center(child: CircularProgressIndicator(),)
            : ListView.builder(
            itemCount: marsh.length,
            itemBuilder: (context,index){
              return ListTile(
                title: Text(marsh[index].mrTitle),

您没有指定 FutureBuilder 的类型,例如:

providers: [
    FutureProvider(

应该是:

providers: [
    FutureProvider<List<TransportType>>(