Я использую Flutter Redux для управления состоянием.
Но всякий раз, когда я удаляю элемент из списка, используя removeAt в редукторе, он всегда удаляет последний элемент этого списка.
Состояние:
class TimeTableState {
final List<TimeTableModel> items;
TimeTableState({@required this.items});
TimeTableState.initialState(): items = <TimeTableModel>[];
}
Действие:
class DeleteAction {
final TimeTableModel model;
final int index;
DeleteAction({@required this.model, @required this.index});
}
Разбавление:
else if(action is DeleteAction) {
state.items.removeAt(action.index);
return TimeTableState(
items: state.items
);
}
Widget:
new StoreConnector<TimeTableState, ViewModel>(
converter: (store) => new ViewModel.delete(
deleteAction: (model, index) =>
store.dispatch(DeleteAction(model: model, index: index))
),
builder: (cxt, view) =>
new Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
new IconButton(
onPressed: () {
view.deleteAction(viewModel[widget.index], widget.index);
},
icon: new Icon(Icons.delete),
iconSize: 25.0,
color: Colors.amber,
)
],
),
)