Flutter 'Invalid constant value error'报错原因咨询
错误原因解释
- 核心问题:你在构建
WelcomeView时用了const关键字,但传递的AnimationController是运行时初始化的变量,不符合constWidget对参数的要求。 - 具体逻辑:
AnimationController是在initState方法里初始化的,这个方法在组件运行时才会执行,所以该实例是运行时对象,不属于编译期常量。- Dart中
const修饰的Widget要求所有构造参数必须是编译时常量(比如字面量、const构造的对象等),目的是在编译阶段就确定Widget的结构,实现复用优化。 - 当你把运行时的
AnimationController传给const WelcomeView时,编译器会判定参数不是合法的常量值,从而抛出Invalid constant value错误。
解决办法:去掉WelcomeView前面的const关键字,改成普通的Widget构造:
// 错误写法 const WelcomeView(controller: _animationController) // 正确写法 WelcomeView(controller: _animationController)
内容的提问来源于stack exchange,提问作者chan hong Park
相关产品推荐
相关产品推荐

