【发布时间】:2021-10-20 20:15:26
【问题描述】:
如何在文本编辑器应用中快速存储数据(段落)。文本编辑器是用 Quill 包构建的。我是否需要获取外部 API 或任何其他包或存储已在 Flutter 中的 Quill 包中可用,以及该 api 或存储包是否提供云存储或本地存储我用户的手机存储
【问题讨论】:
如何在文本编辑器应用中快速存储数据(段落)。文本编辑器是用 Quill 包构建的。我是否需要获取外部 API 或任何其他包或存储已在 Flutter 中的 Quill 包中可用,以及该 api 或存储包是否提供云存储或本地存储我用户的手机存储
【问题讨论】:
如果您希望数据在线存储,您可以使用 firebase,或任何在线数据库,如 mySql、MongoDB 和许多其他选项
但是,如果您想将它们本地存储在手机上,而不使用互联网,并让这些数据持久保存,“杀死应用程序然后重新运行并在新会话中找到该数据”,那么您需要使用本地数据库,例如 sqfLite 或 Sembast Flutter 包,
Sembast 是一个超级快速和简单的 noSQL 本地数据库。而 sqfLite 是一个 SQL 数据库
如果您只需要在会话进行时存储数据,并在应用程序被终止时进行处理,您可以使用 bloc 或扩展 ChangeNotifier 的类中的提供程序将数据存储在全局变量中
如果您只想将数据存储在当前活动屏幕中并在关闭屏幕时处理数据,只需在 statefulWidget 的状态类中使用该数据设置一个局部变量..
【讨论】:
将内容转换为json字符串
var json = jsonEncode(_controller.document.toDelta().toJson());
使用名为shared preferences的包
使用共享首选项保存 json 字符串。
检索数据使用
var myJSON = jsonDecode(incomingJSONText);
_controller = QuillController(
document: Document.fromJson(myJSON),
selection: TextSelection.collapsed(offset: 0));
【讨论】: