无法在初始值设定项中访问实例成员“上下文”。(implicit_this_reference_in_initializer 位于 [rtoapp] lib\serviveSelection.dart:45)

NOO*_*OOB 0 flutter

颤抖的小伙伴们大家好,

我正在尝试使用 mediaquery 获取屏幕尺寸并将其存储在名为 size 的变量中。 我在另一个屏幕上执行此操作 这给了我这个错误

无法在初始值设定项中访问实例成员“上下文”。(implicit_this_reference_in_initializer 位于 [appname] lib\serviveSelection.dart:45)


import 'package:flutter/material.dart';


class home extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<home> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
        backgroundColor: Colors.white,
        centerTitle: true,
        automaticallyImplyLeading: false,
        title: Text(
          'Home',
          style: TextStyle(
            fontSize: 30,
            color: Colors.black,
            fontFamily: "Antipasto"
          ),
        ),
      ),


      body: myapp(),
    );

  }
}

class myapp extends StatefulWidget {

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

class _myappState extends State<myapp> {
  var size = MediaQuery.of(context).size;
  @override
  Widget build(BuildContext context) {
    return SingleChildScrollView(
      child: Container(
        child: Column(
          children: [
            Container(
              width: 200,
              child: Card(
                child: Text(
                  'Welcome'
                ),
              ),
            )
          ],
        ),
      )
    );
  }
}

Run Code Online (Sandbox Code Playgroud)

Ben*_*non 7

一旦状态被实例化,mediaquery 就会被执行,这对于访问上下文还为时过早,因为上下文还没有准备好。将其移至方法内部build()

class _myappState extends State<myapp> {
  @override
  Widget build(BuildContext context) {
    var size = MediaQuery.of(context).size;
    return SingleChildScrollView(
Run Code Online (Sandbox Code Playgroud)