Насколько мне известно, я думаю, что невозможно обновить состояние без повторного рендеринга компонента (без изменения состояния), поскольку response использует неглубокий рендеринг, он в основном проверяет предыдущее и текущее состояние и повторно отображает, если они не совпадают, если вы спросите меня, чтобы сделать это без утечек памяти и кучи ошибок, вы могли бы
a) использовать отдельный компонент для цели выборки и отображения результатов (как вы сказали в таблице), чтобы только этот компонент повторно отображался (и использовал сокращение или contextAPI. в зависимости от того, что вы хотите), также вы можете использовать componentWillUnmount (который будет устаревшим), когда пользователь отображает другую страницу, чтобы очистить интервал. (или вы можете использовать хуки и просто вернуть функцию, которая очищает интервал)
useEffect(()=>{
const interval = setInterval(()=>{
//fetch here
},40000);
return () => {
cleanInterval(interval)
}
},[tableData /*this is supposed to be the state value of the data you fetch*/])
b) состояние мутации. ЭТО НЕ ХОРОШАЯ ИДЕЯ (это приведет к большему количеству ошибок и ошибок)