#flutter #dart
Вопрос:
Я пытаюсь проверить количество столбцов, которые виджет переноса создает на экране, я написал этот код:
late double _charsWidth; late int _numberOfColumns; @override void initState() { //_scrollController.jumpTo(0); _charsWidth = widget.characters.length * 100; WidgetsBinding.instance?.addPostFrameCallback((_) { final RenderBox renderBox = _containerKey.currentContext?.findRenderObject() as RenderBox; print('_charsWidth: $_charsWidth'); print('renderBox.size.width: ${renderBox.size.width}'); setState(() { _numberOfColumns = (renderBox.size.width / _charsWidth).ceil(); }); super.initState(); print(_numberOfColumns); // error });
Но я получаю ошибку LateInitializationError: Field '_numberOfColumns@45197325' has not been initialized.
с print(_numberOfColumns)
.
Каков правильный способ обновления состояния здесь?
Ответ №1:
удалите ключевое слово late, избегайте использования ключевого слова late перед переменной с нулевым значением
double? _charsWidth; int? _numberOfColumns;