Flutter - Flutter blo c состояние не обновляется - PullRequest
0 голосов
/ 20 июня 2020

Я использую flutter_bloc библиотеку для управления состоянием виджетов. Я пытаюсь обновить переменную в состоянии List. Когда я фиксирую состояние и изменяю желаемое значение, а затем передаю новое состояние, состояние не обновляется, но изменяется клон состояния.

Stream<ItemState> _updateRestrictions(ItemUpdateRestrictionValue event) async * {
  if (state is ItemLoaded) {
    final restrictions = (state as ItemLoaded).restrictions;

    final newState = restrictions.map((restriction) {
      if (restriction.id == event.restrictionId) {
        return ItemRestriction(
          id: restriction.id,
          name: restriction.name,
          restrictionType: restriction.restrictionType,
          restrictionValues: restriction.restrictionValues,
          restrictionValue: event.restrictionValueId
        );
      }

      return restriction;
    }).toList();

    yield ItemLoaded(restrictions: newState);
  }
}

Я что-то делаю не так? Или как правильно обновить состояние, используя flutter_bloc?

1 Ответ

2 голосов
/ 20 июня 2020

Это, вероятно, происходит из-за того, что вы используете Equatable на своем ItemState class и получаете одно и то же состояние, равное IteamLoaded().

Вы можете прочитать это https://bloclibrary.dev/# / faqs? Id = when-to-use-equatable

...