#reactjs #react-redux
Вопрос:
Попробуйте удалить несколько записей с помощью вызова api .
Но он удаляет только первую запись
deleteData = () =>
{
var deleteArray = this.state.deleteArray;
for(var i=0;i < deleteArray.length;i ){
var name = deleteArray[i].name;
var id = deleteArray[i].id;
deleteAPICallDispatch(name,id);
}
}
Код отправки для api вызовов
const mapDispatchToProps = (dispatch, ownProps) => {
return {
deleteAPICallDispatch:(name,id) => dispatch(deleteAPICall(name,id)),
};
};
приведенный выше код вызывает API только один раз, а не несколько раз
Комментарии:
1. Почему вы отправляете в цикле, вместо того, чтобы сначала создать массив, а затем вызвать диспетчеризацию? Это необходимость или просто предпочтение?
2. да,нужно указать идентификатор ,имя и удалить конкретную запись
3. Ну, я бы позволил своему API удалить несколько, если это вариант использования. В этом случае я бы просто отправил действие с массивом
toBeDeleted
элементов и отправил массив в серверную часть. Серверная часть выполнит цикл по массиву и удалит элементы.
Ответ №1:
Вы могли бы попробовать следующее:
deleteData = () => {
Promise.all(
this.state.deleteArray.map(({ name, id }) =>
deleteAPICallDispatch(name, id)
)
);
};
Вы могли бы зарегистрировать это.состояние.Удалите значение.length, чтобы убедиться, что оно правильное.