参数类型“FutureBuilder<NewsModel>”不能分配给参数类型“Future<Object?>?”

Posted

技术标签:

【中文标题】参数类型“FutureBuilder<NewsModel>”不能分配给参数类型“Future<Object?>?”【英文标题】:The argument type 'FutureBuilder<NewsModel>' can't be assigned to the parameter type 'Future<Object?>?' 【发布时间】:2022-01-11 01:38:31 【问题描述】:

我的代码中遇到了这个错误:

参数类型“FutureBuilder”不能分配给参数类型“Future?”

class _HomePageState extends State<HomePage> 
  late FutureBuilder<NewsModel> _newsModel;

  @override
  void initState() 
    _newsModel = API_Manager().getNews() as FutureBuilder<NewsModel>;
    super.initState();
  

  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: Center(child: Text('News App')),
      ),
      body: Container(
        child: FutureBuilder(
          future: _newsModel,
          builder: (context, snapshot) 
            if (snapshot.hasData) 
              return ListView.builder(itemBuilder: (context, index) 
                return Container(
                  height: 100,
                  color: Colors.red,
                );
              );
             else
              return Center(child: CircularProgressIndicator());
          ,
        ),
      ),
    );
  

帮助我解决这个错误。谢谢。

【问题讨论】:

【参考方案1】:

FutureBuilderfuture 接受Future。所以_newsModel 应该是Future,而不是FutureBuilder

【讨论】:

我试过了,但对我不起作用。你能从你的最后检查它是否工作吗? 对不起,我写错了命令。你说的对。它对我有用。赞赏。感谢您的帮助。

以上是关于参数类型“FutureBuilder<NewsModel>”不能分配给参数类型“Future<Object?>?”的主要内容,如果未能解决你的问题,请参考以下文章

获取错误“未知”类型的参数不能分配给“错误”类型的参数 |空值'

给定传递给它的参数类型,如何确定函数参数的类型?

参数类型“Type”不能分配给参数类型“FirebaseUser”

类型提示,其中一个参数是另一个参数的类型

参数类型“对象?”不能分配给参数类型'String'最新版本

Python参数类型以及常见的坑