- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法按给定属性对可观察的 RxList 进行排序。当我使用 BloC 方法时,排序工作正常,使用一个简单的列表。
最近我将状态管理更改为 GetX ( https://github.com/jonataslaw/getx ) 包,因为我看到了几个优点(不需要上下文、页面转换等)。
这里有两种情况,我的不好,之前没有说明,让我放小 cucumber 的
场景 1:
Given user in Posts Screen
When user Pull down to get Newest posts
Then user get the newly fetched posts on top of the previous loaded list
场景 2:
Given user in Posts Screen
When user reaches the end of the list
Then user get more posts at the end of the previous loaded list
post_model.dart
class Post {
final int id;
final String title;
final DateTime date;
final User user;
Post({
@required this.id,
@required this.title,
@required this.date,
this.user});
}
post_controller.dart
import 'dart:async';
import 'package:get/state_manager.dart';
import 'package:blog/models/post.dart';
import 'package:blog/services/posts_api.dart';
class PostsController extends GetxController {
int _page = 0;
---------HERE OBS LIST-----------
RxList posts = [].obs;
@override
void onReady() {
super.onReady();
this.loadPosts();
}
Future<void> loadPosts({isRefreshLoad = false}) async {
int pager;
if (isRefreshLoad) {
pager = 1;
} else {
increment();
pager = this._page;
}
Map<String, String> arguments = {'page': '$pager'};
final List<Post> newPosts =
await PostsApi.instance.getPosts(arguments: arguments);
// remove duplicates
posts.addAll(
newPosts.where(
(newPosts) => posts.every((post) => newPosts.id != post.id),
),
);
//----------HERE'S THE EXCEPTION----------
posts.sort((a, b) => b.id.compareTo(a.id));
update(['posts']);
}
}
错误
flutter: [GETX] PostsController has been initialized
[VERBOSE-2:ui_dart_state.cc(166)] Unhandled Exception: type 'Post' is not a subtype of type 'List<dynamic>'
#0 RxList.remove
package:get/…/rx/rx_impl.dart:333
PostsScreen.dart
Scaffold(
backgroundColor: Color.fromRGBO(58, 66, 86, 1.0),
appBar: AppBarWidget(
drawerOpen: drawerPosition,
appBarVisible: _isVisible,
drawerVisible: true,
),
body: ColorfulSafeArea(
overflowRules: OverflowRules.only(left: true, bottom: true),
child: GetBuilder<PostsController>(
id: 'posts',
init: PostsController(),
builder: (_postsController) {
_postsControllerGlobal = _postsController;
// Scenario 1 - Triggers when user pull down to get new posts
return RefreshIndicator(
onRefresh: () {
return _postsController.loadPosts(
isRefreshLoad: true);
},
child: StreamBuilderWidget(
stream: _postsController.posts.stream,
// Scenario 2 Triggers when scroll controller reaches end of list
scrollController: _scrollController, isDrawerOpen: _isDrawerOpen,
widgetType: 'PostItemWidget',
),
);
},
),
),
),
----在此处输入代码
------
我需要一种方法,无论触发器是 PullDown 还是到达列表的最后末尾,在它们被添加到流后始终按日期 desc 顺序对获取的帖子列表进行重新排序,以便始终显示项目按发布顺序。
希望有人能帮帮我。
最佳答案
经过几天的努力,我发现它要简单得多,而且由于我缺乏知识。
由于列表是可观察的,只需将其转换为列表就足以完成排序:
普通列表
可观察列表
谢谢!
关于list - 从 getX dart 包中为 Flutter 应用程序排序 RxList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63473890/
通过终端,您可以使用命令 - “SetFile -a B 文件名” 以编程方式,我认为我应该通过[[NSFileManager defaultManager] createDirectoryAtPat
嗨,正在尝试书中的一些示例:Practical Graph mining with R对于子图挖掘: library(subgraphMining) library(igraph) graph1 =
代码中的相同问题: class Foo { int getIntProperty () { ... } CustomObject getObjectProperty () { ... }
所以这可能是一个愚蠢的问题,但它已经困扰我一段时间了。 使用 React,我创建了两个组件(Buttons.js 和 Message.js),每个组件都有一个导出。但是,现在我希望将这两个组件用作 n
从今天早上开始,我发现我无法再从某个范围安装任何 NPM 包(或任何具有依赖项的包)。例如,如果我输入 npm i webpack 我会收到以下错误... npm ERR! code E401 npm
我在这里搜索过,Angular 2, @ngtools/webpack, AOT ,但对我不起作用。我运行了 npm install 命令。我正在做的是创建一个新的 Angular 2 项目。当我运行
情况: 我有一个 Swift 包,将其命名为 lib。 lib 位于其自己的存储库中。在lib的仓库中,有一堆本地包;也就是说,这些包是在 lib 中定义的,使用本地路径依赖格式 .package(p
我想在工作中学习和使用nodejs,但是在使用 de npm 命令安装模块/包时遇到网络问题。我是否可以使用我的家用计算机构建完整的 Node js 包,然后将其安装在另一台计算机(我的工作场所计算机
我需要将一些 .tar.bz2 格式的非 Python 包转换为 Anaconda/miniConda .egg 文件并安装它们。为此,我需要一个适用于 Windows 的 bld.bat 文件。互联
我需要共享库文件 libthrift-0.9.3.so 作为其他包的依赖项。我在构建 thrift-0.9.3 包时看到编译问题(我确实从 https://thrift.apache.org/down
我尝试在 R 版本 3.5.0 中安装“arcgisbinding”包。但是我失败了,得到以下错误和警告。 Installing package into ‘C:/Users/Lenovo/Docum
我尝试在 R 版本 3.5.0 中安装“arcgisbinding”包。但是我失败了,得到以下错误和警告。 Installing package into ‘C:/Users/Lenovo/Docum
我试图在 flutter 中测试这个应用程序,但我无法运行该应用程序,因为出现此错误“名称‘Page’在库‘package:burn_off/widgets/page.dart’和‘package’中
试图理解和学习如何编写包...用我一直使用的东西进行测试,记录... 您能帮我理解为什么“日志”变量不起作用...并且屏幕上没有日志记录吗? 谢谢! 主要文件: #!/opt/local/bin/py
我尝试运行此使用 Google 云的代码。 import signal import sys from google.cloud import language, exceptions # creat
我想知道是否有人找到了一个很好的 R 包来分析眼动追踪数据? 我遇到了 eyetrackR,但据我所知,没有可用的英文支持文档: http://read.psych.uni-potsdam.de/pm
我正在 R 上制作一个包。我有两个函数共享一个变量(全局)。 如何将其导入到包中? 例如, m<-0 f<-function() { m <- m+1 } g<-function() { m <- m
我用 C 为 Lua 编写了很多模块。每个模块都包含一个 Lua 用户数据类型,我像这样加载和使用它们: A = require("A") B = require("B") a = A.new(3,{
我正在尝试在 R 中的 Ubuntu 上安装 xlsx 包,以便使用允许在 R 中插入链接然后将它们导出到 Excel 的功能。 话虽如此,我根本无法安装该软件包。 显然它必须与 rJava 一起使用
我想在 Haskell 中做一些蒙特卡洛分析。我希望能够编写这样的代码: do n <- poisson lambda xs <- replicateM n $ normal mu sigma
我是一名优秀的程序员,十分优秀!