ChangeNotifierProxyProvider строитель против проблемы обновления - PullRequest
0 голосов
/ 09 апреля 2020

Я использовал провайдера: ^ 3.0.0, в котором он имеет «строитель» параметров ChangeNotifierProxyProvider, в котором я предоставлял данные. Теперь версия провайдера изменена, и теперь его обновленной версией является провайдер: ^ 4.0.4, и у него нет функции «строитель», теперь у него есть функции создания и обновления. Пожалуйста, скажите мне, что за логика c стоит за созданием и обновлением. Я думаю, что ящики запускаются только в первый раз, а обновления запускаются каждый раз после первого раза? Я прав! Но у меня есть проблема, я должен передать некоторые данные следующему классу в параметре. См. Мой код

    ChangeNotifierProxyProvider<Auth, Shops>(
      create: (ctx)=> Shops('778b2f743f2aebd4d73d2431881a88ba54c53c01', []),
      update: (ctx, auth, prevShop)=> Shops(auth.token, prevShop.items),
      ),

Я хочу передать authToken классу магазина, при обновлении эти данные можно получить из этого объекта аутентификации, но при создании, что мне делать? И я хочу передать список магазинов в качестве второго аргумента в классе магазинов, который будет списком магазинов, полученных с моего сервера, но здесь, потому что у меня нет ссылок и ссылок, поэтому я должен пропустить пустой список при создании.

Это означает, что при первой загрузке страницы не было списка магазинов, а когда я снова открою ту же страницу, список магазинов будет отображен на экране.

, пожалуйста, помогите мне очистить это выпуск.

1 Ответ

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

Я также столкнулся с той же проблемой. Я искал документацию и нашел решение.

Вам необходимо определить функцию update () в классе Shops () , который принимает ваши аргументы: auth.token и prevShop.items , и вам нужно обновить все, что вы хотите, в этой функции обновления.

ChangeNotifierProxyProvider<Auth, Shops>(
      create: (ctx)=> Shops(),
      update: (ctx, auth, prevShop)=> prevShop..update(auth, prevShop.items),
      ),

Мы используем .. update ( auth.token, prevShop.items) для возврата того же Shops () виджет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...