You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Notion API:ToDo组件Text参数类型不匹配错误

解决Flutter中Notion ToDo组件Text参数类型不匹配问题

这是典型的命名冲突问题——你混淆了两个完全不同的Text类:一个是Flutter SDK里用来渲染UI的Text widget,另一个是Notion API库中用来描述富文本结构的Text数据模型。Notion的ToDo组件需要的是后者,不是Flutter的UI组件,直接传Flutter的Text肯定会报类型不匹配。

给你几个具体的解决方法:

  • 给Notion库加导入别名
    导入Notion API库时用as关键字指定别名,彻底区分两个类:

    import 'package:flutter/material.dart';
    // 给Notion库起别名,比如notion
    import 'package:notion_api/notion_api.dart' as notion;
    

    之后创建待办区块时,用别名明确调用Notion的Text类:

    // 创建Notion要求的文本数据模型
    var todoContent = notion.Text(content: "这是一条待办事项");
    // 传入ToDo组件
    var todoBlock = notion.ToDo(text: [todoContent]);
    
  • 直接使用完整命名空间引用
    如果不想改导入方式,也可以直接用Notion库的命名空间指定Text类:

    final todoText = package:notion_api/rich_text.Text(content: "待办内容");
    final todoBlock = ToDo(text: [todoText]);
    
  • 避免冲突性的导入方式
    不要用show或hide单独导入Notion的Text类,比如import 'package:notion_api/rich_text.dart' show Text;,这种写法会直接覆盖Flutter的Text类,加剧混淆。

注意:Notion的ToDo组件需要的是富文本数组(List<Text>,这里的Text是Notion的模型类),不是Flutter的UI组件。你之前用无参构造能成功,是因为它不需要文本参数,一旦要传入内容,必须用Notion库提供的文本模型来构造数据。

内容的提问来源于stack exchange,提问作者colonelPickles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 01:24:53