我读过一些有关“查找已停用小部件的祖先不安全”错误的 stackoverflow 帖子,但找不到有效的答案。
我尝试使用脚手架设置全局键,并使用 WidgetsBinding.instance.addPostFrameCallback() 但没有成功。
我很确定我正在做一些愚蠢且容易修复的事情,但我不知道是什么。
这是代码的简单版本,当您从 PhotoViewPage ( photo_view 包)返回时,它会复制错误:
my_home_page.dart
import 'package:flutter/material.dart';
import 'package:phototest/photo_view_page.dart';
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return TextButton(
child: const Text("to PhotoView"),
onPressed: () => _toPhotoView(context),
);
}
void _toPhotoView(BuildContext context) {
Navigator.of(context).push(
MaterialPageRoute<dynamic>(
builder: (BuildContext context) => const PhotoViewPage(),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
photo_view_page.dart
import 'package:flutter/material.dart';
import 'package:photo_view/photo_view.dart';
class PhotoViewPage extends StatelessWidget {
const PhotoViewPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return PhotoView(imageProvider: AssetImage("assets/image.png"));
}
}
Run Code Online (Sandbox Code Playgroud)
Sim*_*eon 34
更新- 在 photo_view 0.14中修复。
问题来自photo_view包。
在pubspec.yaml中从依赖项中删除photo_view
dependencies:
photo_view: ^0.13.0
Run Code Online (Sandbox Code Playgroud)
添加:
dependency_overrides:
photo_view:
git:
url: https://github.com/bluefireteam/photo_view
ref: master
Run Code Online (Sandbox Code Playgroud)
这样您就可以避免来自同一版本的依赖项中的错误。
| 归档时间: |
|
| 查看次数: |
3623 次 |
| 最近记录: |