#flutter #dart
#flutter #dart
Вопрос:
Я пришел из React и пытаюсь понять Flutter. Есть некоторые различия между dart vs JS и React vs Flutter. Тем не менее, это кажется немного похожим друг на друга. Однако существует некоторая путаница в отношении Flutter.
void
Он не возвращает значение. Поэтому он используется для void main()
. Означает ли это, что функция ‘main ()’ будет выполнена, и я никогда не смогу использовать повторно void main()
?
<>
В коде у меня здесь
class LoginScreen extends StatefulWidget {
createState() {
return new LoginScreenState();
}
}
class LoginScreenState extends State<LoginScreen> {
Widget build(context) {
return Container(
margin: EdgeInsets.all(20.0),
child: Column(
children: [
emailField(),
// passwordField(),
// submitButton(),
],
));
}
}
Я вижу, что State<LoginScreen>
это связано class LoginScreen
. Это расширение LoginScreen
состояния?
Future<int> successor = future.then((int value) {
},
Однако в here Future <—— я не понимаю, почему в этом коде должно быть указано ‘int’. Как правильно использовать <>
?
- С сохранением состояния или без состояния
Могу ли я просто использовать Stateful
все время, даже если у меня нет такого состояния, как React? Где нет разницы?
Комментарии:
1. Этот
main()
возвратvoid
не имеет никакого отношения к тому, является ли он повторно используемым или нет. Он вызывается из-за побочного эффекта, как и другие функции, которые возвращаютvoid
(напримерmain()
его снова.
Ответ №1:
Вам нужно изучить базовый dart.
void main()
такой же, какmain()
. Единственное отличие заключается в объявлении возвращаемого типа.main()
вызывается механизмом flutter только один раз.- Читайте о дженериках.
<>
называется ромбовидным оператором и используется для указания типа чего-либо.Future<int>
означает, что функция вернет что-то в будущем, и это будет строгоint
типа. Если вы не укажете тип, flutter будет рассматривать его какdynamic
. - Вы можете использовать
stateful
классы, если используете пакеты управления состоянием, такие какprovider
илиrxdart
для поддержания состояния.
Комментарии:
1. Насколько я вижу, он более близок к TypeScript. Я также изучаю Dart. Спасибо за ответы!
2.
main()
вызывается автоматически один раз, но это все равно функция; ее можно вызывать несколько раз, как и любую другую функцию. Например,main()
может быть рекурсивным.
Ответ №2:
class LoginScreen extends StatefulWidget {
createState() {
return new LoginScreenState();
}
}
enter code here
changed to
class LoginScreen extends StatefulWidget {
LoginScreenState createState()=>LoginScreenState();
}
}
enter code here
Stateful vs Stateless`enter code here`
stateful has state object and stateless has no state object.using stateful you can changes widget data .on other hand in stateful you cant