flutter - 由于检查员的 Widget 模式,Provider 中的最后一个变量被设置了两次
问题描述
鉴于以下 MWE:
class AnimationProvider with ChangeNotifier {
late final AnimationController controller;
}
class Animations extends StatefulWidget {
// ...
}
class _AnimationsState extends State<Animations> with TickerProviderStateMixin {
// ...
@override
initState() {
context.read<AnimationProvider>.read().controller = AnimationController(..., vsync: this);
}
// ...
}
void main() {
return Provider(
create: (_) => AnimationProvider(),
child: MaterialApp(
home: Animations(child: Scaffold(...)),
),
);
}
我想在我的 Flutter 应用程序上切换 Widget Inspector 模式,但我面临着一个大问题。
检查员正在重新实例化MaterialApp
小部件树,从而调用我的类的initState
函数。Animations
此问题记录以下错误:
LateInitializationError: Field 'controller' has already been initialized.
我试过??=
了,但由于值不能为空,我会得到一个异常。
到目前为止我的想法已经用完了,在此先感谢您的帮助!
解决方案
推荐阅读
- mongodb - 如何设置多个 PRISMA 服务,一个用于测试,一个用于开发
- reactjs - 找不到模块“node-sass”反应
- pandas - Pandas- 使用 sklearn 和 numpy 进行 ML 的索引错误
- excel - 从二维数组中切片第一维
- python - BigQuery 中的授权视图问题:数据集访问条目为空
- python - 用pandas DataFrame中的numpy数组替换字符串
- javascript - 如何从父节点获取子节点的JS字体大小?
- c# - 这是访问对撞机数组中游戏对象的好方法吗?
- oracle-apex - 调用 Web 服务以 oracle apex 形式填充数据
- rest - 一个记录中的 REST API 更新和电子邮件地址,其中 ID 有多个记录