Обнаружена ошибка при использовании ChangeNotifierProvider.value в Gridview.builder - PullRequest
0 голосов
/ 04 апреля 2020

Вероятно, это ошибка и она не поддерживается. Если вы находитесь в такой ситуации, рассмотрите возможность передачи key, уникального для каждого отдельного конструктора.

Выше приведена ошибка, которая отражается при запуске кода с виджетом флаттера как дочерним: -

    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,
      ),
    )

1 Ответ

0 голосов
/ 04 апреля 2020

Эту ситуацию можно решить, используя указанные ниже ключи: -

    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,
      ),
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...