Метод dispose
Метод dispose класса ChangeNotifier очищает список listener и запрещает дальнейшие addListener и notifyListeners. Вызывают из dispose виджета или вручную у модели.
Синтаксис
void dispose()
Пример
Давайте закроем ValueNotifier через dispose:
import 'package:flutter/foundation.dart';
void main()
{
final note = ValueNotifier<String>('abcde');
note.dispose();
print(note.hasListeners);
}
Результат выполнения кода
false
Пример
Давайте вызовем dispose модели в dispose State:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: OwnerLeaf(),
),
),
),
);
}
class OwnerLeaf extends StatefulWidget
{
const OwnerLeaf({super.key});
@override
State<OwnerLeaf> createState() => _OwnerLeafState();
}
class _OwnerLeafState extends State<OwnerLeaf>
{
final note = ValueNotifier<String>('12345');
@override
void dispose()
{
note.dispose();
super.dispose();
}
@override
Widget build(BuildContext context)
{
return ValueListenableBuilder<String>(
valueListenable: note,
builder: (context, value, child) => Text(value),
);
}
}
На экране leaf покажет '12345', а dispose снимет ValueNotifier.
Смотрите также
-
метод
dispose,
где часто вызываютdisposeмодели -
метод
removeListener,
который снимает одного слушателя доdispose -
класс
ValueNotifier,
который наследуетdispose -
класс
ChangeNotifier,
к которому относитсяdispose