MyHomePage(Key key, this.title) : super(key: key)理解 flutter构造器key

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyHomePage(Key key, this.title) : super(key: key)理解 flutter构造器key相关的知识,希望对你有一定的参考价值。

参考技术A MyHomePage(Key key, this.title) : super(key: key);
个人理解:
首先MyHomePage(Key key, this.title)的含义是一个命名函数的写法,即调用的时候是这样的

就是说参数被包括之后就是参数可选,就是可以是0个参数,1个参数,2个参数,然后每个参数前都会有个标识符表示这个参数的含义。
然后非默认构造函数是不能被子类继承的,即父类的super(key:xxx) 构造器不会被继承,子类就没有这个构造器,那么我们现在的写法需要使用父类的super(key:xxx) 构造器,则需要在子类构造器后边手工调用父类的这个个构造器。
所以后边的 : super(key: key)就是指定继承父类的构造器。
只是个人理解,希望大神肯定或者勘误,谢谢

https://www.dartcn.com/guides/language/language-tour#%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0

tabController保活

代码:

import ‘package:flutter/material.dart‘;
class MyhomePage extends StatefulWidget {
MyhomePage({Key key}) : super(key: key);

@override
_MyhomePageState createState() => _MyhomePageState();
}

class _MyhomePageState extends State<MyhomePage> with AutomaticKeepAliveClientMixin {

int _count = 0;
@override
bool get wantKeepAlive => true;//方法
void _inaddCount(){
setState(() {
_count ++;
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(‘计数‘),
Text(‘$_count‘,style: Theme.of(context).textTheme.display2,)

],
),
),
floatingActionButton: FloatingActionButton(
onPressed:_inaddCount,
tooltip: ‘点击加1‘,
child: Icon(Icons.add),
),
);
}
}
总结:
 

保活—就是保持tabController中的数据不会归零

继承于AutomaticKeepAliveClientMixin

//重写wantKeepAlie 方法 并置为true

  bool get wantKeepAlive => true;//方法

写个内置函数 重写setState()

以上是关于MyHomePage(Key key, this.title) : super(key: key)理解 flutter构造器key的主要内容,如果未能解决你的问题,请参考以下文章

求一段js中使用key和value的例子,最好有点备注。

JavaScript 模拟 Dictionary

Javascript中的字典和散列

微信小程序wx:key以及wx:key=" *this"详解:

ThreadLocal源码调试——“this”作为key

redis的key过期时间