это редукторы файлов. js
...
swicth(action.type){
case "DELETE_TODO_STARTED":
return {
loading: false,
todos : state.todos
};
case "DELETE_TODO_SUCCESS":
const todoList = state
todoList.splice(parseInt(action.data.id),1)
return {
loading: false,
todos : [...todoList]
// i think error this code
};
case "DELETE_TODO_FAILURE":
return {
loading: false,
};
default:
return {
todos: [],
};
}
...
это файловое действие. js
...
export const deleteData = (index) => {
return (dispatch) => {
dispatch(deleteDataStarted());
axios
.delete(`https://5ec912d99ccbaf0016aa8b6f.mockapi.io/list/${index}`)
.then(res => {
dispatch(deleteDataSuccess(res.data))
})
.catch(err => {
dispatch(deleteDataFail(err))
})
}
}
export const deleteDataStarted = () => ({
type: "DELETE_TODO_STARTED",
});
export const deleteDataSuccess = (data) => ({
type: "DELETE_TODO_SUCCESS",
data,
});
export const deleteDataFail = (err) => ({
type: "DELETE_TODO_FAILURE",
err,
});
...
это элемент файла. js
....
const { todoName, stt} = this.props;
return (
<tr>
<th scope="row">{stt + 1}</th>
<td>{todoName}</td>
<td>
<button
onClick={() =>this.props.deleteData(stt)}
type="button"
class="btn btn-danger mr-2"
>
<i class="fa fa-window-close"></i>
</button>
</td>
</tr>
);
...
const mapDispatchToProps = (dispatch) =>{
return {
deleteData : (index) => {dispatch(deleteData(index))}
}
}
export default connect(null,mapDispatchToProps)(Item)
это список файлов
...
<tbody>
{this.props.todoList.map((todo, index) => (
<Item key={index} todoName={todo.name} stt={index} />
))}
</tbody>
...
Я хочу, чтобы данные обновились и диаплей на экране после удаления события. Но при нажатии кнопки события появляется сообщение: Невозможно прочитать свойство «карта» неопределенного значения. Я пытаюсь вывести индекс элемента, который я удалил, все в порядке. пожалуйста, помогите мне !!!