- [flutter]The instance member '_number' can't be accessed in an initializer. 목차
flutter로 앱을 만들면서 만나는 에러들을 정리하였다
호출되는 함수
Future<String> loadLotto() 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()내에서 하여야 한다
'flutter' 카테고리의 다른 글
[flutter]sharedPreference 사용 실수 (0) | 2021.01.03 |
---|---|
[flutter]print() (0) | 2020.12.27 |
[flutter]'await' applied to 'String', which is not a 'Future' (0) | 2020.12.26 |
[Flutter]변수를 문자열(string)로 치환하여 프린트(print) 하기($ 사용) (0) | 2020.12.13 |
[Flutter]Dart 2차원 배열(list, 리스트) 데이터 저장 및 가져오기(List.generate()) (0) | 2020.12.13 |