Why avoid calling `setState` directly inside `build()`?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Khi gọi trực tiếp `setState` bên trong hàm `build()`, có thể dẫn đến vòng lặp vô hạn. Điều này xảy ra vì khi `build()` được gọi, nó sẽ tạo ra một bản sao mới của widget, sau đó gọi lại hàm `build()` để tạo ra một bản sao mới khác. Nếu trong hàm `build()` này, bạn gọi `setState()`, nó sẽ tạo ra một bản sao mới khác của widget và gọi lại hàm `build()` để tạo ra một bản sao mới khác nữa. Vòng lặp này có thể tiếp tục mãi mãi cho đến khi ứng dụng bị treo. Vì vậy, để tránh vòng lặp vô hạn này, bạn nên gọi `setState()` bên ngoài hàm `build()`.

Cùng chủ đề