我正在使用窗口小部件错误:只能在初始化程序中访问静态成员

时间:2019-01-27 21:19:21

标签: android dart flutter

我需要从_ImagePreviewPageState中的ImagePreviewPage StatefulWidget访问临时列表。但这表明只能在初始化程序中访问静态成员

imgList必须是静态的,以便可以在CarouselSlider实例中使用

有解决此问题的解决方案吗?

.search{
float: right;
width: 200px;
padding: 15px 15px;
margin: auto 0;
background-color: green;
}

1 个答案:

答案 0 :(得分:0)

静态列表imgList ...

是静态的,这意味着可以在没有asyncData(context) { return context.app.$storyapi .get('cdn/stories', { version: 'draft', starts_with: 'blog/' }) .then(res => { console.log(res) return { posts: res.data.stories.map(bp => { return { id: bp.slug, title: bp.content.title, previewText: bp.content.summary, thumbnailUrl: bp.content.thumbnail }; }) }; }); } 实例的情况下对其进行访问。

_ImagePreviewPageState

引用widget.templist 的{​​{1}}属性,但是没有实例。

你能做的是

widget

要在第一次创建此类窗口小部件实例时初始化_ImagePreviewPageState, 但我怀疑这是个好主意,因为class _ImagePreviewPageState extends State<ImagePreviewPage> { _ImagePreviewPageState() : super() { imgList ??= widget.templist; } static List<String> imgList; 会因每个小部件实例而异,因此将其存储在静态变量中不太可能。

您需要详细说明应该解决什么问题才能使其他人提出具体建议。