Я использую библиотеку компонентаact-data-table lib и есть столбец, который отвечает за включение и отключение пользователей.
столбец:
const columns = [
{
cell: row =>
<Toggle
checked={row.enable}
handleChange={() => props.handleUserStatus(row.enable, row.id)}
/>,
width: '120px'
}
]
HandleUserStatus - это действие, которое вызывает API, и пока все не будет в порядке ...
export const handleUserStatus = (status, id) => {
if (status) {
return dispatch => {
httpPut(`account/user/${id}/disable`)
.then(resp => {
return [
dispatch(getDataTable()),
]
})
.catch(error => {
console.log(error)
})
}
}
else {
return dispatch => {
httpPut(`account/user/${id}/enable`)
.then(resp => {
return [
dispatch(getDataTable())
]
})
.catch(error => {
console.log(error)
})
}
}
}
После вызова API вызывается другое действие, чтобы снова загрузить данные таблиц ... но ничего не происходит.
Я использую useEffect для выполнения getDataTable для получения данных таблицы при загрузке страницы следующим образом:
useEffect(() => {
setTimeout(() => {
props.getDataTable()
setloadingDataTable(false)
}, 600);
//eslint-disable-next-line
},[]);
Мне нужно передать пустой массив, потому что функция getDataTable вызывается в цикле ... Как я могу отобразить страницу снова после выполнения HandleUserStatus?