Я не думаю, что setInterval - это хороший способ опроса данных. Некоторые ответы могут быть медленнее, чем 500 мс, и вы можете получить более старые результаты позже.
При каждом опросе следует дождаться предыдущего ответа.
const [state, setState] = React.useState(0)
const [timer, setTimer] = React.useState(null)
const [isMounted, setIsMounted] = React.useState(false)
async function updateDevicePosition () {
try {
const result = await fetch('http://192.168.10.233:34599/')
const data = await result.json()
setState(data.x)
} catch (e) {
console.error(e)
}
clearTimeout(timer)
setTimer(setTimeout(updateDevicePosition, 200))
}
useEffect(() => {
if (!isMounted) {
updateDevicePosition()
setIsMounted(true)
}
})
При этом очень много запросов на такую работу. Предпочтительным способом должно быть использование сокета, где сервер ведет данные, и отправка сообщений вашему клиенту только при изменении положения устройства. В зависимости от того, когда вы будете использовать эту информацию о позиции, ваше приложение будет использовать много ресурсов