Uri.parse('https://www.a2rstore.in/api/school/v1/noticeApi.php?id=${widget.s_id}'); widget.s_id 出错

Uri.parse('https://www.a2rstore.in/api/school/v1/noticeApi.php?id=${widget.s_id}'); got error on widget.s_id

class Notice extends StatefulWidget {
  final String s_id;

  const Notice({Key key, this.s_id}) : super(key: key);

  @override
  _NoticeState createState() => _NoticeState();
}

class _NoticeState extends State<Notice> {
  TextEditingController _titleController = new TextEditingController();

  var api =
      Uri.parse('https://www.a2rstore.in/api/school/v1/noticeApi.php?id=${widget.s_id}');

你不能在没有上下文的情况下调用“小部件”。 正确的方法是首先定义变量:

class _NoticeState extends State<Notice> {
  TextEditingController _titleController = new TextEditingController();

  var api;
  ...
}

然后在 build 或 initState 方法中为其赋值:

@override
initState(){
   api = Uri.parse('https://www.a2rstore.in/api/school/v1/noticeApi.php?id=${widget.s_id}');
}