score:0

i think the issue is that sse doesn't persist for the full lifetime of the component.

to avoid this issue, you should use useref hook.

sse will persist for the full lifetime of the component.

    const sse = useref<any>();

    useeffect(function() {
        sse.current = new eventsource('/api/v1/events');
        sse.current.onmessage = (ev : messageevent) => {
            const item = json.parse(ev.data);
            if (item === null) {
                sse.currernt.close();
                return;
            }
            console.log('received', item.msg);
            setstate((items) => ([...items, item]));
        };
        return () => {
            sse.current.close();
        };
    }, []);

Related Query

More Query from same tag