기본 페이지에는 많은 하위 위젯이 있습니다. 검색 할 때 SearchWidget
이 표시되고 그렇지 않은 경우 DashletsWidget
이 표시됩니다.하위 위젯에서 TabController 길이를 업데이트하기위한 패턴
DashletsWidget
은 TabController
입니다. TabController
은 기본 페이지에 보관되므로 검색 후 활성 탭이 재설정되지 않습니다.
DashletsWidget
에는 대시 탭 설정 창이있어 탭 수를 변경할 수 있습니다.
DashletsWidget(ValueNotifier<int> dashletCount, TabController controller)
ValueNotifier
을 사용하면 부모에게 controller
을 다시 만들 수 있습니다. 다시 작성하는 동안 이전 TabController를 안정적으로 처리 할 수 없으므로 처리하지 않고 바로 참조 해제하십시오. 그것은 일종의 일이지만 너무 자연스럽지 않습니다. TabController.length
을 업데이트하는 좋은 패턴이 있습니까?
GC 팁과 ValueKey 트릭을 주셔서 감사합니다. 부모를 상태로 이동하면 상황이 복잡해집니다. DashletsWidget은 대시 렛 정보 목록을 저장하는'StoreWatcher'를 확장합니다. 내가 시도한 것부터'Store' 인스턴스를 얻으려면'StoreWatcher'가 필요합니다. 'StoreWatcher'를 확장 한 위젯은'TabController'에'TickerProviderStateMixin'을 사용할 수 없습니다. 그래서 거기서 끝나 버립니다. TabController를 바꾸는 동안 탭 전환 애니메이션에 문제가 있기 때문에 현재 솔루션도 적절하지 않습니다. –