согласно многим примерам это должно работать:
const [_timeseries, $timeseries] = useState({hi:'lol'})
useEffect(() => {
socket.on('plot', e => {
let keyname = Object.keys(e)[0]
$timeseries({..._timeseries, [keyname] : value)})
}
}, [])
console.log(_timeseries) // here results in the initial state, not the set state
При первом слиянии работает. Но как только появляется новое событие с другим именем ключа, оно снова заменяет все. Вместо добавления нового ключа с [keyname], старый [keyname] заменяется.