В Flutter для обновления массива в Stateful Widget можно использовать метод setState().
В начале создаем список или массив внутри класса нашего Stateful Widget:
List<String> items = ["item 1", "item 2", "item 3"];
Затем обновляем состояние массива внутри setState(). Обратите внимание, что необходимо вызывать setState() только при изменении данных, иначе это может привести к перерисовке виджета излишне:
setState(() { items.add("new item"); });
Метод setState() обновляет состояние виджета и вызывает его перерисовку. После вызова setState(), Flutter будет обновлять только изменившиеся части виджета, что делает процесс более эффективным.
Итак, полный код будет выглядеть так:
import 'package:flutter/material.dart'; class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { List<String> items = ["item 1", "item 2", "item 3"]; void addItem() { setState(() { items.add("new item"); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Array Update Example"), ), body: ListView.builder( itemCount: items.length, itemBuilder: (context, index) { return ListTile( title: Text(items[index]), ); }, ), floatingActionButton: FloatingActionButton( onPressed: addItem, child: Icon(Icons.add), ), ); } }
В данном примере мы создали класс MyWidget, который наследуется от StatefulWidget. Затем мы создали внутренний класс _MyWidgetState, который расширяет класс State и определяет переменную списка и метод addItem(), который добавляет новый элемент в список. В методе build мы строим пользовательский интерфейс, используя ListView.builder для отображения списка элементов, и FloatingActionButton для добавления нового элемента в список.