Несколько полей состояния в Flutter
На одном экране часто несколько значений:
два счётчика, лимит и остаток, день и
месяц. Все они могут жить в одном классе
State.
Один setState может обновить сразу
несколько полей, если это одна операция.
Каждая кнопка в setState меняет
только своё поле - второе не трогают:
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: HomePage()));
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int apples = 0;
int oranges = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: const EdgeInsets.all(24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Apples: $apples'),
ElevatedButton(
onPressed: () {
setState(() {
apples++;
});
},
child: const Text('+ apple'),
),
const SizedBox(height: 24),
Text('Oranges: $oranges'),
ElevatedButton(
onPressed: () {
setState(() {
oranges++;
});
},
child: const Text('+ orange'),
),
],
),
),
);
}
}
Добавьте третье поле pears и
кнопку «+ pear». Все три счётчика
должны отображаться на экране и
увеличиваться независимо.