小编Hoo*_*yar的帖子

那么在 Flutter 中缓存最简单的方法是什么?

该应用程序是一个简单的新闻阅读器,它显示 WordPress 帖子,没什么特别的,不使用 BLOC、继承的 Widget、Firebase。我希望它即使在用户离线时也能显示缓存的数据(这是最新的 10 个帖子)。

所以如果用户离线显示缓存数据;或者以某种方式默认数据是缓存数据。

从 WP REST API 获取 firstPost[Id] 如果缓存的 Json 文件包含 Post[id],则显示缓存的数据;否则 getPosts(); 并显示加载指示器。还请更新本地 JSON 文件。

获取JSON数据的代码:

// Function to fetch list of posts
 Future<String> getPosts() async {
 var res = await http
    .get(Uri.encodeFull(apiUrl + "posts?_embed&per_page=10"), //TODO make it unlimited
        headers: {"Accept": "application/json"});

setState(() {
  var resBody = json.decode(res.body);

  posts = resBody;
});

return "Success!";
}
Run Code Online (Sandbox Code Playgroud)

获取帖子并显示加载指示器的未来:

  body: FutureBuilder<List<String>>(
      future: getPosts(),
      builder: (context, snapshot) {
        if (snapshot.hasError) print(snapshot.error);

        return snapshot.hasData
            ? ListViewPosts(posts: snapshot.data)
            : …
Run Code Online (Sandbox Code Playgroud)

dart flutter

8
推荐指数
1
解决办法
2万
查看次数

映射嵌套 JSON 时如何检查 NULL?

我正在尝试将嵌套的 JSON 映射到模型对象,问题是当它返回 null 时,它会破坏所有代码,我想检查 null 是否执行某些操作但不破坏应用程序。

JSON 文件:

[
    {
        "id": 53,
        "date": "2018-12-28T08:51:11",
        "title": {
            "rendered": "this is for featured"
        },
        "content": {
            "rendered": "\n<p><g class=\"gr_ gr_3 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling\" id=\"3\" data-gr-id=\"3\">sdafkj</g> <g class=\"gr_ gr_10 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace\" id=\"10\" data-gr-id=\"10\">kj</g> <g class=\"gr_ gr_16 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace\" id=\"16\" data-gr-id=\"16\">asd</g> <g class=\"gr_ gr_18 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling\" id=\"18\" data-gr-id=\"18\">kadjsfk</g> kljadfklj sd</p>\n",
            "protected": false
        },
        "excerpt": {
            "rendered": "<p>sdafkj kj …
Run Code Online (Sandbox Code Playgroud)

json dart flutter

8
推荐指数
2
解决办法
1万
查看次数

使 flutter 尽快迁移的最佳 Firebase 替代方案是什么?

我们刚刚启动了一个使用 Flutter 和 Firebase 服务的项目:Auth、Firestore、Functions。我们刚刚发现 Firebase 不适用于华为手机。Flutter中使用哪个后端服务来迁移整个项目最快、最可靠?

backend flutter

6
推荐指数
1
解决办法
2513
查看次数

Flutter Desktop 中是否可以使用任何类型的数据库

在为我的桌面应用程序编写了 2 周的 UI 代码后,我发现 firebase 不支持 flutter 桌面,Sqflite 也不支持。那么我如何访问flutter桌面的任何类型的数据库呢?我已经尝试过 Sqflite 和 Firebase,而 Rest API 还不够。

dart firebase flutter flutter-desktop

5
推荐指数
1
解决办法
6657
查看次数

ListView.builder 不显示任何内容 - Flutter

当我不使用 Flutter 中的 ListView.builder 构造函数时,单个项目按预期从 JSON API 中显示:

当我使用 ListView.builder 时,什么也没有显示。没有错误!

我还尝试了一个仅包含文本的列表视图,但似乎也不起作用。这是代码:

@override
Widget build(BuildContext context) {

return Container(

 child: new Scaffold(
     appBar: AppBar(
         title: Text("the title"),//TODO edit this
         backgroundColor: Colors.blueAccent),

     body:
     Column(
       children: <Widget>[
         FutureBuilder<List<dynamic>>(
           future: getPosts2(),
           builder: (context, snapshot) {
             if (snapshot.hasError) print(snapshot.error);

             return snapshot.hasData
                 ? ListViewPosts(postsFrom: snapshot.data)
                 : Center(child: CircularProgressIndicator());
           },
         ),


       ],
     ),

 ),
  );
 }
 }
Run Code Online (Sandbox Code Playgroud)

这是 ListViewPosts 无状态小部件:

     class ListViewPosts extends 
     StatelessWidget {
     final List<dynamic> postsFrom;

     ListViewPosts({Key key, 
     this.postsFrom}) : super(key: key);

       @override
       Widget …
Run Code Online (Sandbox Code Playgroud)

dart flutter

2
推荐指数
2
解决办法
7776
查看次数

标签 统计

flutter ×5

dart ×4

backend ×1

firebase ×1

flutter-desktop ×1

json ×1