在Gridview.builder中使用ChangeNotifierProvider.value时遇到错误

问题描述 投票:0回答:1

这可能是一个错误,不受支持。如果遇到这种情况,请考虑为每个单独的构造函数传递一个唯一的key

以上是反映在将flutter小部件作为子代运行代码时出现的错误:-

    GridView.builder(
      padding: const EdgeInsets.all(10.0),
      itemCount: products.length,
      itemBuilder: (ctx, i) => ChangeNotifierProvider.value(
        value: products[i],
        child: ProductItem(
            ),
      ),
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: 2,
        childAspectRatio: 3 / 2,
        crossAxisSpacing: 10,
        mainAxisSpacing: 10,
      ),
    )
flutter hybrid-mobile-app flutter-dependencies flutter-change-notifier
1个回答
0
投票

这种情况可以通过使用指定的键来解决:-

    GridView.builder(
      padding: const EdgeInsets.all(10.0),
      itemCount: products.length,
      itemBuilder: (ctx, i) => ChangeNotifierProvider.value(
        key: Key("item$i"),
        value: products[i],
        child: ProductItem(
            ),
      ),
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: 2,
        childAspectRatio: 3 / 2,
        crossAxisSpacing: 10,
        mainAxisSpacing: 10,
      ),
    )
© www.soinside.com 2019 - 2024. All rights reserved.