Flutter实现RSS Feed解析时触发RSSParser未定义title getter的编译错误
编译错误根因
报错触发原因:自定义的RSSParser StatefulWidget类中没有定义title属性,因此在对应State类内通过widget.title访问时,编译器找不到对应的getter方法,直接抛出"The getter 'title' isn't defined for the type 'RSSParser'"的错误。参考教程可以正常运行,是因为教程示例提前在RSSParser类中声明了title字段,复制代码时遗漏了这部分前置定义。
修复方案
方案一:补全Widget类的title属性定义(适配原教程的传参逻辑)
- 第一步:修改
RSSParser类的代码,添加title字段与带参构造函数:
class RSSParser extends StatefulWidget { // 声明需要传入的title属性 final String title; // 补全构造函数,要求传入title值 const RSSParser({Key key, @required this.title}) : super(key: key); @override _RSSParserState createState() => _RSSParserState(); }
修改后,RSSParser类会自动生成title的getter方法,State类内的widget.title访问就不会触发编译错误。
- 第二步:在页面初始化使用
RSSParser组件时,必须传入匹配的title参数:
// 组件使用示例 MaterialApp( home: RSSParser( title: "足球RSS资讯" // 必须传入与组件要求匹配的标题值 ) )
方案二:省略传参逻辑(不需要外部传入标题时适用)
如果你的页面标题是固定值,不需要从外部动态传入,可以直接修改initState内的逻辑,去掉对widget.title的访问:
@override void initState() { super.initState(); // 直接写入固定的标题值 updateTitle("90min 体育资讯"); }
这种方式不需要修改RSSParserWidget类的定义,也可以直接消除编译错误。
内容的提问来源于stack exchange,提问作者user1444393
相关产品推荐
相关产品推荐

