#flutter #dart
Вопрос:
Я получаю эту ошибку и не знаю, как ее решить
"Exception has occurred. FlutterError (Looking up a deactivated widget's ancestor is unsafe. At this point the state of the widget's element tree is no longer stable. To safely refer to a widget's ancestor in its dispose() method, save a reference to the ancestor by calling dependOnInheritedWidgetOfExactType() in the widget's didChangeDependencies() method.)"
Я получаю это, когда нажимаю на одну из кнопок awesome dialog
почему, как я использую dialog
после того, как пользователь выполнит поиск одного из сотрудников в базе данных с search delegate
помощью приложения, он проверит, существует ли сотрудник в базе данных или нет, и в каждом случае я получаю информацию о покупке awesome dialog
, но когда я нажимаю на одну из кнопок, я получаю сообщение об ошибке
пожалуйста, помогите, я не знаю, как решить эту проблему, я знаю, что мне чего-то не хватает
вот метод в том search delegate
месте, где я получаю ошибку
Widget buildSuggestions(BuildContext context) {
List filternames = b!
.where((element) => element[0].startsWith(query.toUpperCase()))
.toList();
List filteridnumber =
b!.where((element) => element[1].startsWith(query)).toList();
return ListView.builder(
itemCount: query == ""
? b!.length
: filternames.length == 0
? filteridnumber.length
: filternames.length,
itemBuilder: (context, i) {
return InkWell(
onTap: () async {
close(context, null);
print("the filternames table is $filternames");
print("the filteridnumbers table is $filteridnumber");
if (filternames.length != 0) {
query = filternames[i][0];
print("query is $query");
theemployeechoosen = filternames[i][1];
print(" theemployeechoosen is $theemployeechoosen");
} else {
query = filteridnumber[i][0];
print("query is $query");
theemployeechoosen = filteridnumber[i][1];
print(" theemployeechoosen is $theemployeechoosen");
}
int num = await getprefs();
if (num == 1) {
print("the employee is already an inventory assistant");
AwesomeDialog(
context: context,
dialogType: DialogType.ERROR,
dialogBackgroundColor: Colors.red[100],
animType: AnimType.BOTTOMSLIDE,
btnOkColor: Colors.red,
title: 'هذا الشخص عون جرد بالفعل ',
desc: ' لا يمكن اضافة هذا الشخص لانه عون جرد في هذا العام',
).show();
} else {
print("the employee is not an inventory assistant");
AwesomeDialog(
context: context,
dialogType: DialogType.INFO,
animType: AnimType.BOTTOMSLIDE,
title: 'Dialog Title',
desc: 'Dialog description here.............',
btnCancelOnPress: () {},
btnOkOnPress: () {},
)..show();
}
showResults(context);
},
child: Container(
padding: EdgeInsets.all(10),
child: Container(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
child: filternames.length == 0
? Text("${filteridnumber[i][0]}")
: Text("${filternames[i][0]}"),
)),
);
});
}