0

我正在开发一个应用程序,它有一个页面;用户可以写评论。我想要的是; 应该刷新列表视图后,用户添加了他们的评论。

添加了我的 addComment 功能。

我的控制器

  var isLoading = true.obs;
  var addModel = AddCommentModel().obs();

  AddCommentController(this.comment, this.userUnique, this.articleID);

  @override
  void onInit() {
    super.onInit();
  }

  void addComment() async {
    try {
      isLoading(true);
      var response =
          await ApiService.addComment(comment, userUnique, articleID);
      if (response != null) {}
    } finally {
      isLoading(false);
    }
  }
}

我的观点;

body: Column(
        children: <Widget>[
          Expanded(
            child: Obx(() {
              if (commentsController.isLoading.value) {
                return Center(
                  child: SpinKitChasingDots(
                      color: Colors.deepPurple[600], size: 40),
                );
              }
              return ListView.builder(
                controller: scrollController,
.
.
.
onPressed: () async {
                                  Future.delayed(Duration(seconds: 1))
                                      .then((_) {
                                    AddCommentController(parser.unemojify(textFieldCtrl.text), box.read('uid'),
        box.read('rid'))
    .addComment();
4

2 回答 2

0

我认为你在这里做的不是好习惯。你可以做些什么来以某种直接的方式实现同​​样的目标。我的意思是列表在 rx 世界中本质上是自动反应的。因此,您可以执行以下操作:

控制器中:

final commentList=<Comment>[].obs;

Future<void> addComment()async{
  final response =await ApiService.addComment(params);
  commentList.add(response);
  }

在您的视图中:

Obx(()=>ListView.builder(
          itemCount: controller.commentList.length,
          itemBuilder:......
  ),),
于 2021-04-02T06:21:25.770 回答
0
  1. 添加使用 addComment 函数的部分

  2. 如果您在调用数据的类以外的其他地方调用 addComment 函数,请使用 Get.find() 来获取控制器(我可能犯了错误)

于 2021-04-01T15:44:41.423 回答