использование сборки, когда в блоке

#flutter #bloc

Вопрос:

Я пытаюсь понять решение блочного заявления. Но я не понимаю, что buildWhen на самом деле используется для чего. когда значение будет равно true, оно вернет первое утверждение, если условие if. так для чего же buildWhen используется?

примером может служить:

 BlocBuilder<OrdersBloc, OrdersState>(
  buildWhen: (context, state) {
    return state is OrdersState.OrderCompleted
  },
  builder: (context, state) {
    if (state is OrdersState.OrderCompleted) {
      return Container(child: Text('Order Completed!'));
    } else if (OrdersState.OrderInProgress) {
      return Container(child: Text('In Progress'));
    } else if (OrdersState.OrderRequested) {
      return Container(child: Text('A customer placed an order!'));
    } else {
      return Container(child: Text('Waiting for an order'));
    }
  },
);
 

Комментарии:

1. вы получили свой ответ?

2. вообще-то, нет. @Яхидулислам

3. Внимательно прочитайте выделенный жирным шрифтом раздел моего ответа?

4. на самом деле, раздел blod-это то, что я знал , я НЕ знал, зачем использовать buildWhen , но @JahidulIslam

5. На самом деле сборка, когда используется для проверки состояния строителя каждый раз.

Ответ №1:

Для детального контроля над тем, когда функция builder вызывается, может быть предоставлена дополнительная сборка. Построение Когда принимает предыдущее состояние блока и текущее состояние блока и возвращает логическое значение. Если buildWhen возвращает true, конструктор будет вызван с состоянием, и виджет будет перестроен.Если buildWhen возвращает false, конструктор не будет вызываться с состоянием и перестройка не произойдет.

 BlocBuilder<BlocA, BlocAState>(
  buildWhen: (previousState, state) {
    // return true/false to determine whether or not
    // to rebuild the widget with state
  },
  builder: (context, state) {
    // return widget here based on BlocA's state
  }
)
 

Для получения дополнительной информации перейдите по ссылке