Вы можете использовать это как компонент класса
class App extends React.Component {
interval;
constructor() {
super()
this.state = {
data: {}
}
}
componentDidMount() {
this.loadData();
this.interval = setInterval(this.loadData, 5000);
}
componentWillUnmount() {
clearTimeout(this.interval);
}
async loadData() {
try {
const res = await fetch('https://jsonplaceholder.typicode.com/posts/1');
await res.json().then(res => {
this.setState({
data: res
})
})
} catch (e) {
console.log(e);
}
}
render() {
return (
<div>
<ul>
<li>UserId : {this.state.data.userId}</li>
<li>Title : {this.state.data.title}</li>
<li>Body : {this.state.data.body}</li>
</ul>
</div>
);
}
}
render(<App />, document.getElementById('root'));
Как уже упоминалось @xadm, вы можете использоватьEffect два раза согласно требованию простого исправления
useEffect(() => {
callApiAfterOneSec();
}, []);