栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Flutter-setState不更新内部有状态小部件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flutter-setState不更新内部有状态小部件

这应该可以解决您的问题。基本上,您始终希望在

build
方法层次结构中创建Widget 。

import 'dart:async';import 'package:flutter/material.dart';void main() => runApp(new MaterialApp(home: new Scaffold(body: new MainWidget())));class MainWidget extends StatefulWidget {    @override    State createState() => new MainWidgetState();}class MainWidgetState extends State<MainWidget> {    List<ItemData> _data = new List();    Timer timer;    Widget build(BuildContext context) {        return new ListView(children: _data.map((item) => new ChildWidget(item)).toList());    }    @override    void initState() {        super.initState();        timer = new Timer.periodic(new Duration(seconds: 2), (Timer timer) async { ItemData data = await loadData(); this.setState(() {     _data = <ItemData>[data]; });        });    }    @override    void dispose() {        super.dispose();        timer.cancel();    }    static int testCount = 0;    Future<ItemData> loadData() async {        testCount++;        return new ItemData("Testing #$testCount");    }}class ChildWidget extends StatefulWidget {    ItemData _data;    ChildWidget(ItemData data) {        _data = data;    }    @override    State<ChildWidget> createState() => new ChildState();}class ChildState extends State<ChildWidget> {    @override    Widget build(BuildContext context) {        return new GestureDetector(onTap: () => foo(), child: new Padding(     padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 24.0),     child: new Card(         child: new Container(  padding: const EdgeInsets.all(8.0),  child: new Text(widget._data.title),         ),     ), )        );    }    foo() {        print("Card Tapped: " + widget._data.toString());    }}class ItemData {    final String title;    ItemData(this.title);    @override    String toString() {        return 'ItemData{title: $title}';    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410184.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号