I have the following react class component to call an API every 10 seconds. Its works with no issues.
class Alerts extends Component {
  constructor() {
    this.state = {
      alerts: {},
    }
  }
  componentDidMount() {
    this.getAlerts()
    this.timerId = setInterval(() => this.getAlerts(), 10000)
  }
  componentWillUnmount() {
    clearInterval(this.timerId)
  }
  getAlerts() {
    fetch(this.getEndpoint('api/alerts/all"))
        .then(result => result.json())
        .then(result => this.setState({ alerts: result }))
  }
  render() {
    return (
      <>
        <ListAlerts alerts={this.state.alerts} />
      </>
    )
  }
}
I am trying covert this to a react functional component. This is my attempt so far.
const Alerts = () => {
    const [alerts, setAlerts] = useState([])
    useEffect(() => {
        getAlerts()
        setInterval(() => getAlerts(), 10000)
    }, [])
    getAlerts() {
        fetch(this.getEndpoint('api/alerts/all"))
            .then(result => result.json())
            .then(result => setAlerts(result)
    }
    return (
      <>
        <ListAlerts alerts={alerts} />
      </>
    )
}
Please can someone help me complete the example? Is useEffect the correct usage or is there a better option?
Any help would be appreciated
 
     
     
    