В основном я пытаюсь создать приложение, содержимое которого будет обновляться с помощью функции async, которая берет информацию с веб-сайта, но когда я пытаюсь установить новое состояние, она не перезагружает новый контент. Если я отлаживаю приложение, он показывает, что текущий контент является новым, но после "перестроения" всего виджета он не отображает новую информацию.
Изменение: метод loadData(), в основном читать URL-адрес с http-пакетом, URL-адрес содержит файл JSON, содержимое которого каждые 5 минут меняется с новыми новостями. Например, файл.json со спортивными табло в реальном времени, чьи оценки всегда меняются, поэтому контент всегда должен меняться с новыми результатами.
class mainWidget extends StatefulWidget
{
State<StatefulWidget> createState() => new mainWidgetState();
}
class mainWidgetState extends State<mainWidget>
{
List<Widget> _data;
Timer timer;
Widget build(BuildContext context) {
return new ListView(
children: _data);
}
@override
void initState() {
super.initState();
timer = new Timer.periodic(new Duration(seconds: 2), (Timer timer) async {
String s = await loadData();
this.setState(() {
_data = <Widget> [new childWidget(s)];
});
});
}
}
class childWidget extends StatefulWidget {
childWidget(String s){
_title = s;
}
Widget _title;
createState() => new childState();
}
class childState extends State<gameCardS> {
Widget _title;
@override
Widget build(BuildContext context) {
return new GestureDetector(onTap: foo(),
child: new Card(child: new Text(_title));
}
initState()
{
super.initState();
_title = widget._title;
}
}