flutter - 为什么要出售此消息,setState() 或 markNeedsBuild() 在构建 obx Getx 期间调用
问题描述
当我执行 Get.to (product ()) 时,该消息开始出现,我不明白为什么会这样。流程是产品主页 -> 产品详情 -> 购买历史。然后,在购买历史记录中,我想使用 Get.to (product ()) 将产品重定向到视图,但我收到了该消息。我是新来的颤振
这是mi代码。这是 Screen Products 的正文:
class Body extends StatelessWidget {
const Body({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
ProductsController _productsController = Get.put(ProductsController());
return Query(
options: QueryOptions(document: getAllProductsQuery),
builder: (result, {fetchMore, refetch}) {
if (result.isLoading && result.data == null) {
return Center(
child: CircularProgressIndicator(),
);
}
final List<dynamic> listProducts = result.data['productos'];
_productsController.listProducts.value = listProducts;
return Column(
children: [
SearchBox(),
CategoryList(),
SizedBox(height: kDefaultPadding / 2),
Expanded(
child: Stack(
children: [
Container(
margin: EdgeInsets.only(top: 70),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(40),
topRight: Radius.circular(40),
),
),
),
Obx(() => _productsController.listProducts.value.length <= 0
? Container(
child: Center(
child: Text('No found'),
),
)
: RefreshIndicator(
onRefresh: () {
_productsController.itemSelected.value = 0;
return refetch();
},
child: ListView.builder(
itemCount:
_productsController.listProducts.value.length,
itemBuilder: (context, index) => ProductCard(
itemIndex: index,
product:
_productsController.listProducts.value[index],
press: () {
print(_productsController
.listProducts.value[index]['id']);
Get.to(() => DetailsScreen(), arguments: [
_productsController.listProducts.value[index]
['id'],
_productsController.listProducts.value[index]
['price']
]);
},
),
),
))
],
),
)
],
);
},
);
}
}
这是屏幕历史:
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:probardispositivofisico/dashboard/screens/product/components/products_controller.dart';
import 'package:probardispositivofisico/dashboard/screens/product/products_screen.dart';
import 'package:probardispositivofisico/history/body.dart';
class HistoryScreen extends StatelessWidget {
const HistoryScreen({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('History'),
actions: [
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Get.to(() => ProductsScreen());
})
],
),
body: Body());
}
}
解决方案
推荐阅读
- c++ - 检查 1/n 小数点后是否有无限位数
- rabbitmq - 消息卡在 RabbitMQ 上的 x-delayed-message Exchange 中
- mysql - 在 MYSQL 查询中求和时如何忽略 NULL?
- c# - 有没有办法使用 gecko c# 更改打印边距
- google-sheets - 使用非默认工作表在 BigQuery Cloud Shell 中从 Google 工作表创建外部表
- r - 绘制具有分类预测变量的支持向量机
- xamarin - Xamarin 表单 UWP 的 MasterDetail 页面中的标题问题
- chronicle-map - 创建一个堆外内存 ChronicleMap
- php - 使用 Symfony Serializer 将 JSON 反序列化为类实例数组
- java - 如何将数据作为外键添加到 SQLite 表?