[flutter]The instance member '_number' can't be accessed in an initializer.

2020년 12월 26일 by 진아사랑해

    [flutter]The instance member '_number' can't be accessed in an initializer. 목차
반응형

flutter로 앱을 만들면서 만나는 에러들을 정리하였다

 

호출되는 함수

Future<StringloadLotto() async {

  SharedPreferences prefs = await SharedPreferences.getInstance();

 

  var number = prefs.getString('key');

  return (number);

}

 

클래스내에 호출하는 함수

class _DisplayNumberState extends State<DisplayNumber> {

  String _number = null;

 

  //initState called when the widget is mounted

  void initState() {                 <- 이 클래스가 호출될 때마다 함수를 호출하여 값을 가져온다

    super.initState();

    if (_number == null) {

      loadLotto().then((String s) => setState((() {

            _number = s;

          })));

    }

  }

 

 var myFinal = _number.split(',');   <- 초기화 과정에서 _number를 사용하면 위와 같은 에러가 나온다

 

이것을 하는 방법은 

위젯을 만드는 build 함수내에서 위와 같은 내용을 수행하여야 한다.

 

  @override

  Widget build(BuildContext context) {

    var myFinal = _number.split(',');

 

즉 initState() 내의 변수에 호출된 함수의 값을 받아오더라도 변수에 대한 실제 사용을 위한 어떤 행동이나

다른 변수에 값을 넣는 등의 행위는 위처럼 build()내에서 하여야 한다

 

 

반응형