у меня есть вопрос
здесь я получаю данные из API и создал вторую страницу, которую могу публиковать из своего приложения в API.
когда я публикую что-то и возвращаюсь на главную страницу, где все сообщения из моего API освещены, мне нужно обновить... когда я обновляю его, новое сообщение будет добавлено, но круг обновления выиграл не перестаю обновлять ..
я понятия не имею, что делать ..
в одном месте я прочитал это из-за установленного состояния, которое создает инфинитив цикл .. но в моем случае мне нужно установленное состояние для обновления пользовательского интерфейса .. скажите, пожалуйста, что делать. пожалуйста, помогите мне, спасибо.
это мой код:
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: MyPage(),
);
}
}
class MyPage extends StatefulWidget {
const MyPage({super.key});
@override
State createState() => _MyPageState();
}
class _MyPageState extends State {
final RefreshController _myrefreshcontroller = RefreshController();
late List? listpost;
@override
void initState() {
fetchAllPosts().then((value) => listpost = value);
super.initState();
}
void _onRefresh() async {
await fetchAllPosts().then((value) {
setState(() {
listpost = value;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('welcome welcome'),
),
body: Center(
child: FutureBuilder(
future: fetchAllPosts(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return SmartRefresher(
controller: _myrefreshcontroller,
onRefresh: _onRefresh,
child: ListView.builder(
itemCount: listpost!.length,
itemBuilder: (context, index) {
return Card(
child: ListTile(
contentPadding: const EdgeInsets.all(20),
title: Padding(
padding: const EdgeInsets.all(20),
child: Text(listpost![index].id.toString())),
subtitle: Padding(
padding: const EdgeInsets.all(20),
child: Text(listpost![index].content.toString())),
),
);
},
),
);
} else if (snapshot.hasError) {
return Text("${snapshot.error}");
}
return const CircularProgressIndicator();
},
),
),
Подробнее здесь: https://stackoverflow.com/questions/786 ... in-flutter