У меня есть эта строка на двух страницах, я хотел бы извлечь ее как виджет, чтобы избежать повторения, но моя среда IDE не позволяет мне отображать всплывающее сообщение:
Ссылка на метод окружающего класса не может быть извлечен
Ниже моя строка, я попытался заключить ее в контейнер, но результат тот же.
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
TagButton(
isActive: _selectedTag == 'cart',
tagIcon: Icons.local_grocery_store,
onTap: () {
setState(() {
_selectedTag = 'cart';
});
},
),
TagButton(
isActive: _selectedTag == 'school',
tagIcon: Icons.school,
onTap: () {
setState(() {
selectedTag = 'school';
});
},
),
TagButton(
isActive: _selectedTag == 'all',
tagIcon: Icons.block,
onTap: () {
setState(() {
_selectedTag = 'all';
});
},
),
TagButton(
isActive: _selectedTag == 'relax',
tagIcon: Icons.spa,
onTap: () {
setState(() {
_selectedTag = 'relax';
});
},
),
TagButton(
isActive: _selectedTag == 'recipes',
tagIcon: Icons.restaurant,
onTap: () {
setState(() {
_selectedTag = 'recipes';
});
},
),
],
),
Я пытался извлечь его как метод, но как только я переместил его в другой файл дротика (чтобы я мог импортировать его на две страницы и использовать его там), появляется много предупреждений
lib/widgets/tagsBar.dart:17:13: Error: Method not found: 'setState'.
setState(() {
^^^^^^^^
lib/widgets/tagsBar.dart:23:21: Error: Getter not found: 'selectedTag'.
isActive: selectedTag == 'school',
^^^^^^^^^^^