Flutter의 MyApp 클래스 오류에 대해 'setState' 메서드가 정의되지 않은 문제를 해결하는 방법은 무엇입니까?

3452 단어 flutterandroidiosapp
이전에 Flutter에서 대화 해제를 기반으로 한 다양한 기사를 살펴보았습니다. 그래서 이번에는 Flutter의 MyApp 클래스 오류에 대해 'setState'가 정의되지 않은 메서드를 해결하는 방법에 대해 알아보겠습니다.

Flutter의 MyApp 클래스 오류에 대해 'setState' 메서드가 정의되지 않은 문제를 해결하시겠습니까?

상태 저장 위젯이란 무엇입니까?



사용자 인터페이스를 더 정확하게 설명하는 다른 위젯의 집합체를 단순히 구축하여 사용자 인터페이스를 설명하는 Flutter 위젯입니다. 이 위젯의 ​​빌드 프로세스는 위젯이 정확한 사용자 인터페이스 설명을 얻을 때까지 재귀적으로 계속됩니다.

예시:



이것은 YellowBird라는 상태 저장 위젯 하위 클래스의 골격입니다.

class YellowBird extends StatefulWidget {
  const YellowBird({ Key? key }) : super(key: key);

  @override
  State createState() => _YellowBirdState();
}

class _YellowBirdState extends State {
  @override
  Widget build(BuildContext context) {
    return Container(color: const Color(0xFFFFE306));
  }
}


Stateful Widget에는 아래와 같은 코드 조각이 있습니다.

class MainPage extends StatefulWidget{
  HomePage createState()=> HomePage();
}

class HomePage extends State<MainPage>{
 //Your code here
}


State 객체의 내부 상태를 변경할 때마다 setState에 전달하는 함수를 변경하십시오.

setState(() { _myState = newValue; });


다음과 같이 위의 질문을 해결하십시오.

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

class _MyAppState extends State<MyApp> {

  Widget build(BuildContext context) {

    String phoneNo;

    return new MaterialApp(
      title: 'SchoolTrack',
      theme: new ThemeData(
        primaryColor: Colors.grey[50],
      ),
      home: new Scaffold(
        appBar: null,

        backgroundColor: Colors.cyan[100],

        body: new Container(

          padding: const EdgeInsets.all(32.0),
          child: new Center(
            child: new TextField(
              autofocus: true,
              autocorrect: false,


              decoration: new InputDecoration(
                  hintText: 'Type the phone no',
                  suffixIcon: new Icon(Icons.send),
                  suffixStyle: new TextStyle(
                    color: Colors.cyan[300],
                  )
              ),
                onSubmitted: (String input) {
                  setState(() {
                    phoneNo = input;
                  });
                },

            ),
          ),
        ),
      )
    );
   }
}


setState{}는 Stateful 위젯 클래스/하위 클래스 내에서만 사용할 수 있습니다. Stateless 위젯을 StatefulWidget으로 변환해야 합니다. 간단히:

산출





StatelessWidget 클래스를 클릭하고 option + return 또는 cmd + 를 사용합니다. macOS에서 VS Code를 사용하는 경우.

결론:
읽어 주셔서 감사합니다 !!!

이 기사에서는 Flutter의 MyApp 클래스 오류에 대해 'setState' 메서드가 정의되지 않은 방법을 살펴보았습니다.

계속 배우도록 !!! 계속 펄럭이세요!!!

Flutter Agency는 Flutter 기술 및 Flutter 개발 문제 솔루션에 전념합니다. 이 포털은 Flutter 위젯 가이드, Flutter 프로젝트, 코드 라이브러리 등과 같은 Flutter의 멋진 리소스로 가득합니다. 전담 Flutter 개발자를 고용해야 하는 경우 언제든지 Flutter Agency 문의하십시오.

좋은 웹페이지 즐겨찾기