使用过的Flutter优化

731 阅读1分钟

记录根据老孟博客使用到的优化

  1. FutureBuilder

在initState中初始化future方法,而不是直接传方法

错误:

@override
Widget build(BuildContext context) {
  return FutureBuilder(
    future: httpCall(),
    builder: (context, snapshot) {
    },
  );
}

优化:

class _ExampleState extends State<Example> {
  Future<int> future;
  @override
  void initState() {
    future = Future.value(42);
    super.initState();
  }
  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: future,
      builder: (context, snapshot) {
      },
    );
  }
}
  1. 底部导航切换页面 IndexedStack代替switch方法切换 - 可以缓存页面的。