Charts never render with Reflex 0.10: the /_xy namespace socket is never connected
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, python, react
Direzione di ricerca
Inizia da XYChart.jsx e segui come xySocket() crea o riutilizza il socket del namespace Socket.IO insieme a createSocket di Reflex in reflex_base/.templates/web/utils/state.js. Controlla il comportamento di connessione di socket.io-client descritto nell’issue, poi riproducilo con Reflex 0.10. Il lavoro è completo quando il namespace si connette e i grafici vengono visualizzati con un canvas; verifica che il comportamento esistente con Reflex 0.9.13 rimanga intatto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
With Reflex 0.10.0, every xy chart in a Reflex app renders empty: the chart's wrapper div mounts, the figure token arrives in state, but no canvas is ever created. Reflex 0.9.13 with the same app and xy[reflex]==0.0.7 renders normally.
Root cause
Reflex 0.10 creates its Socket.IO socket ahead of time with autoConnect: false (reflex_base/.templates/web/utils/state.js, createSocket, used for the "warm socket"). None of 0.9.8 to 0.9.13 does that.
XYChart.jsx's xySocket() deliberately shares Reflex's manager (same URL and path, so io() returns a namespace socket on the cached Manager). A namespace socket only opens itself when the manager was created with autoConnect on (if (this.io._autoConnect) this.open() in socket.io-client's Socket constructor). Because Reflex now creates the manager first with autoConnect: false, the /_xy namespace socket is never connected:
- no
40/_xyCONNECT packet ever goes out on the websocket; - with
localStorage.xy_debug = "1", the effect logseffect run {... hasEl: true}for every chart, but neverxy namespace connectednorxy connect_error; - every
subemit is buffered forever, so no figure payload arrives.
Reproduction
- A Reflex app using
reflex_xy.XYPlugin()and any live chart (figure=handle). reflex==0.10.0,xy[reflex]==0.0.7, Chrome.- Open a page with a chart: the container is empty and
document.querySelectorAll("canvas").length === 0. - Downgrade to
reflex==0.9.13: the charts render.
Suggested fix
Connect the namespace explicitly instead of relying on the shared manager's autoConnect, e.g. in xySocket():
sharedSocket = io(nsUrl.href, { /* unchanged options */ });
sharedSocket.on("connect", () => dbg("xy namespace connected"));
sharedSocket.on("connect_error", (e) => dbg("xy connect_error", String(e)));
if (!sharedSocket.connected) sharedSocket.connect();
return sharedSocket;
connect() is a no-op on an already-active socket, so this is safe whichever side creates the manager first.
- Lingua principale
- Python
- Stelle
- 1.9k
- Fork
- 76
- Merge medio
- 36m
- PR unite (30g)
- 7
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di reflex-dev/xy
-
Skip finite/log visibility scans when zone maps already prove all-finite on linear axesForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertaneeds investigate performance
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
reflex-dev/xy#169 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
reflex-dev/xy#523 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
reflex-dev/xy#516 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 74/100
reflex-dev/xy#512 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
reflex-dev/xy#511 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di reflex-dev/xy
Issue simili
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
sergey-miryanov/gcmon#230 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Azure-Samples/azure-search-openai-demo#3249 ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] Failed archive extraction deletes the dataset cacheForse già presa @dajiaohuang l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
alibaba/GraphScope#4674 ·