有没有办法通过继承的小部件(provider、riverPod、InheritedWidget 等)传递小部件 key 。
如果是的话,有什么优点和缺点。
我想要做的是使小部件成为常量(在小部件树中)并将 key 作为继承的小部件传递,因为它不能是常量,因为 key 来自对象。
const MyWidget({
Key key,
}):super(key: key);
最佳答案
这对您来说应该是一本很好的阅读 Material : https://medium.com/coding-with-flutter/flutter-global-access-vs-scoped-access-with-provider-8d6b94393bdf
在我看来,使用 InheritedWidget (Provider) 或 Riverpod - 这将是范围访问注入(inject) - 是一个很好的方法。您的替代方案是创建一个全局变量,这是一种不太可测试(或根本不可测试)的方法。
更新:这是将 key 传递给小部件的方式:
MyCustomWidget({
required this.widgetData
required final Key key,
}) : super(key: key);
关于flutter - 使用继承的小部件传递小部件 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66304202/