热更新无效问题

遇到一个问题: 安卓模拟器下: Flutter 热更新 无效 navigation 的二级页面无效
要退出页面,重新进入才能生效

IOS 也是无效

排查后最后发现居然是写法有问题:

使用 function 可以实现 热更新,
使用 变量 无法热更新,需要退出再进来

原理是:热更新会重新执行 build()方法,放在参数那边就无法更新

class RowPage extends StatefulWidget {
  @override
  _RowPageState createState() => _RowPageState();
}

class _RowPageState extends State<RowPage> {
	//这样写是不会热更新
  var bodyWidget= Text("ssdfsddf");

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('sdfsdf'),
        ),
        //这个是关键:使用变量无法热更新
//        body:bodyWidget
        body: _content());
  }

  Widget _content(){
   return Text("sdfssdfsdfdf");
  }
}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐