#flutter #dart
#flutter #dart
Вопрос:
У меня есть класс characterList, в котором есть final List <Character> character
поле; Как я могу получить доступ к character
нему из SWMain
класса?
SWMain класс:
class _SWMainState extends State<SWMain> {
Icon customIcon = Icon(Icons.search);
static Text titleText = Text("Star Wars API");
Widget customSearchBar = titleText;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar()
body: FutureBuilder<List<Character>>(
future: fetchCharacters(http.Client()),
builder: (context, snapshot) {
if (snapshot.hasError) print(snapshot.error);
return snapshot.hasData
? CharacterList(character: snapshot.data)
: Center(child: CircularProgressIndicator());
},
),
),
);
}
}
Класс списка символов:
class CharacterList extends StatelessWidget {
final List<Character> character;
CharacterList({Key key, this.character}) : super(key: key);
...
}
Комментарии:
1. Таким же образом вы получаете доступ к любой другой переменной экземпляра класса — мне непонятно, в чем проблема.
Ответ №1:
CharacterList({Key key, this.character}) : super(key: key);
это конструктор.
Вы используете виджет без состояния, поэтому вы можете получить прямой доступ через имя переменной, которое character
в вашем случае.
если вы используете виджет с отслеживанием состояния, поэтому вам нужно получить к нему доступ через widget.character
Thanks.