flutter - Dart , Flutter 我该如何克服这个错误?我想从地图中获取信息以在此处显示
问题描述
我使用 youtube 播放器插件进行颤动。它工作得很好,但是当我尝试将它链接到 youtube URL 的地图时,它会引发错误。
......................在初始化程序中只能访问静态成员。
[class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
var videoURL = uRls[0]['1'].tostring();
YoutubePlayerController _controller;
Map uRls = {
"1": "https://www.youtube.com/watch?v=n8X9_MgEdCg",
"2": "https://www.youtube.com/watch?v=A3co3Tskjtg",
};
@override
void initState() {
_controller = YoutubePlayerController(
initialVideoId: YoutubePlayer.convertUrlToId(videoURL));
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Youtube Player"),
),
body: Container(
child: SingleChildScrollView(
child: Column(
children: <Widget>\[
YoutubePlayer(
controller: _controller,
showVideoProgressIndicator: true,
),
\],
),
),
),
);
}
}][2]
解决方案
答案很简单,不要在任何方法之前访问 uRls 映射。
如果你会在 initState 中这样做,你应该没问题。
YoutubePlayerController _controller;
Map<String, String> uRls = {
"1": "https://www.youtube.com/watch?v=n8X9_MgEdCg",
"2": "https://www.youtube.com/watch?v=A3co3Tskjtg",
};
@override
void initState() {
var videoURL = uRls[0];
_controller = YoutubePlayerController(
initialVideoId: YoutubePlayer.convertUrlToId(videoURL),
flags: YoutubePlayerFlags(
autoPlay: true,
)
);
super.initState();
}
由于访问器,我还稍微清理了地图。