我如何在另一个页面中传递字符串列表(包含存储在我的firestore中的URL字符串)?下面是我的MaterialPageRoute,我正在使用它来传递其他数据,而不是仅为String数据类型的字符串列表。
Navigator.pushReplacement(
context,
MaterialPageRoute(
// * I am passing it to MerchantEditProduct page
builder: (context) => MerchantEditProduct(
latestprod: ProductModel(
couponNameCtrlr:
getProductDetails.couponNameCtrlr,
couponTypeCtrlr:
getProductDetails.couponTypeCtrlr,
couponDescCtrlr:
getProductDetails.couponDescCtrlr,
couponSalePriceCtrlr: getProductDetails
.couponSalePriceCtrlr,
couponUniqueId:
getProductDetails.couponUniqueId,
couponCategoryCtrlr: getProductDetails
.couponCategoryCtrlr,
couponOrigPriceCtrlr: getProductDetails
.couponOrigPriceCtrlr,
couponQuantityCtrlr: getProductDetails
.couponQuantityCtrlr,
couponDateFromCtrlr: getProductDetails
.couponDateFromCtrlr,
couponDateToCtrlr:
getProductDetails.couponDateToCtrlr,
// * couponFeaturedImage is a List<dynamic>, but do contains a list of strings(url).
couponFeaturedImage: getProductDetails
.couponFeaturedImage,
// * couponMultipleImagesCtrlr is a List<dynamic>, but do contains a list of strings(url).
couponMultipleImagesCtrlr:
getProductDetails
.couponMultipleImagesCtrlr,
))));
我确实传递了它并将其存储在第二页的initState中
TextEditingController? couponNameCtrlr;
TextEditingController? couponDescCtrlr;
TextEditingController? couponSalePriceCtrlr;
TextEditingController? couponTypeCtrlr;
TextEditingController? couponCategoryCtrlr;
TextEditingController? couponOrigPriceCtrlr;
TextEditingController? couponQuantityCtrlr;
TextEditingController? couponDateFromCtrlr;
TextEditingController? couponDateToCtrlr;
TextEditingController? couponMultipleImagesCtrlr;
TextEditingController? couponUniqueId;
List? couponFeaturedImage;
void initState() {
couponNameCtrlr =
TextEditingController(text: widget.latestprod.couponNameCtrlr);
couponDescCtrlr =
TextEditingController(text: widget.latestprod.couponDescCtrlr);
couponSalePriceCtrlr =
TextEditingController(text: widget.latestprod.couponSalePriceCtrlr);
couponTypeCtrlr =
TextEditingController(text: widget.latestprod.couponTypeCtrlr);
couponCategoryCtrlr =
TextEditingController(text: widget.latestprod.couponCategoryCtrlr);
couponOrigPriceCtrlr =
TextEditingController(text: widget.latestprod.couponOrigPriceCtrlr);
couponQuantityCtrlr =
TextEditingController(text: widget.latestprod.couponQuantityCtrlr);
couponDateFromCtrlr =
TextEditingController(text: widget.latestprod.couponDateFromCtrlr);
couponDateToCtrlr =
TextEditingController(text: widget.latestprod.couponDateToCtrlr);
couponUniqueId =
TextEditingController(text: widget.latestprod.couponUniqueId);
couponSalePriceCtrlr =
TextEditingController(text: widget.latestprod.couponSalePriceCtrlr);
couponFeaturedImage = widget.couponFeaturedImage;
super.initState();
}
我在这里尝试和搜索的解决方案是,我通过StatefulWidget
使用它下面的所需...
final ProductModel latestprod;
final List? couponFeaturedImage;
const MerchantEditProduct(
{Key? key, required this.latestprod, this.couponFeaturedImage})
: super(key: key);
然而,我仍然不能找回它,我将感谢任何帮助或想法就如何解决这一个。
1条答案
按热度按时间guz6ccqo1#
我通过将couponFeaturedImage存储在String变量中并在
initState
中使用setState修复了此问题。注意:我不知道这是否是推荐的修复,任何改进的想法都是欢迎和赞赏的!谢谢!