【问题标题】:How to get a value from List<Map<String, dynamic>> in Flutter如何从 Flutter 中的 List<Map<String, dynamic>> 中获取值
【发布时间】:2019-07-07 16:57:53
【问题描述】:

我是 Flutter 新手,我有一组 List&lt;Map&lt;String, dynamic&gt;&gt; 数据,其中包含值名称、金额和日期。

例如

[{名称:产品1,金额:24.5,日期:2019-07-07 22:21:57}]

[{名称:产品2,金额:29.5,日期:2019-07-07 22:21:57}]

我将列表传递给列表视图构建器,但是在传递列表之前,我需要使用当前日期验证列表中的日期。请在下面找到我的代码:

import 'package:flutter/material.dart';
import 'package:learning_app/product.dart';

class BuildProduct extends StatelessWidget {
  final List<Map<String, dynamic>> products;
  final Function updateProduct;

  Tasks(this.products, this.updateProduct);

  Widget _buildCard() {
    DateTime _currentDate = DateTime.now();

    Widget ProductCard = Center(
      child: Text('No Products added'),
    );
    if (products.length > 0) {
      ProductCard = ListView.builder(
        scrollDirection: Axis.vertical,
        shrinkWrap: true,
        itemCount: products.length,
        itemBuilder: (BuildContext context, int index) {
          if(Need to compare the date in the products == currentDate) {
            return ProductCard(products[index], index, updateProduct);
          }
        }
      );
    }
    return ProductCard;
  }

  @override
  Widget build(BuildContext context) {
    return _buildCard();
  }
}

我需要在创建每个列表视图项之前读取列表中的日期值并将其与当前日期进行比较。感谢任何帮助,谢谢

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    地图有一个字符串作为键,在本例中为date

    products[index]['date']
    

    【讨论】:

      【解决方案2】:

      您可以使用products[index]['date'] 获取您的日期,然后使用以下任一方法将该日期与当前日期 进行比较:

      要检查当前日期是否晚于产品日期,请使用: DateTime.now().isAfter(productDate)

      要检查当前日期是否早于产品日期,请使用: DateTime.now().isBefore(productDate).

      例子:

      DateTime productDate = DateTime.parse(products[index]['date']);
      print(DateTime.now().isAfter(productDate));
      print(DateTime.now().isBefore(productDate));
      

      祝你好运!

      【讨论】:

        猜你喜欢
        • 2021-03-14
        • 2019-10-01
        • 2021-11-29
        • 2023-02-08
        • 2021-09-25
        • 1970-01-01
        • 2021-06-09
        • 2020-07-01
        • 2021-07-26
        相关资源
        最近更新 更多