Field label bound to a createModel accessor crashes: scheduleExploreIfVisible is not a function
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- frontend
Direzione di ricerca
Inizia in Field.init, dove l’issue indica i controlli delle etichette e la gestione proposta di isAccessorChain; esamina gli helper per accessori e selettori per confermarne il comportamento. Riproduci il problema con l’esempio TextField usando createModel e confrontalo con la forma bind funzionante. Il lavoro è concluso quando la catena di accessori viene trattata come testo dell’etichetta e il campo non genera più errori alla prima esplorazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
<TextField label={m.$page.labels.key} /> with m = createModel<...>() throws TypeError: ins.scheduleExploreIfVisible is not a function from Widget.explore when the field is first explored. label={bind(m.$page.labels.key)} works.
TypeError: ins.scheduleExploreIfVisible is not a function
at TextField.explore (Widget)
at TextField.explore (PureContainer)
at TextField.explore (Field)
at Instance.explore
Cause: Field.init tests this.label.isComponentType before isSelector(this.label):
if ((this.label as any).isComponentType) labelConfig = this.label;
else if (isSelector(this.label)) labelConfig.text = this.label;
else Object.assign(labelConfig, this.label);
An accessor chain is a Proxy whose every property is a truthy accessor, so it is taken for a component and used as the label widget. isSelector would not catch it either, since config.type is truthy on the proxy.
Suggested fix: in Field.init, check isAccessorChain(this.label) first and set labelConfig.text = this.label. Consider making isSelector return true for accessor chains, so other props typed StringProp | Config behave the same.
Seen on cx 26.7.0.
- Lingua principale
- TypeScript
- Stelle
- 492
- Fork
- 72
- Merge medio
- 21m
- PR unite (30g)
- 4
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 codaxy/cxjs
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
feature request
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Issue simili
-
documentation good first issue roadmap
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
resend/react-email#3876 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
siyuan-note/siyuan#21324 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
dmno-dev/varlock#1279 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
himynameisdave/bsky-profanity-counter#59 ·
I maintainer di solito rispondono entro 1 giorno