Flutter

06. Flutter Future build 이벤트 방지

NaHyungMin 2022. 9. 19. 16:40

커스텀으로 SearchBar를 만들던 중 상태가 변하면 setState를 콜해서 서버를 계속 호출하는 문제 발생.

class _CustomersState extends State<Customers> {

 late Future customerFuture;
 
 @override
  @mustCallSuper
  void initState() {
    super.initState();

    customerFuture = generateCustomerList();
  }
  
  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
        future: customerFuture,
        builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {
          return _getData(snapshot);
        });
  }
  
  Future generateCustomerList() async {
    List<CustomerModel> customerModelList = await customerService.getCustomerList() as List<CustomerModel>;
    customerDatagrid = CustomerDatagrid(customerModelList, customerService, _dataGridController);
    customerDatagrid.customerModelList = customerModelList;

    customerFuture = generateCustomerList();
  }

 

그냥 초기값을 넣어놓고, 재 할당되면 callback 해주는 클래스같음.