FunctionComponent.Of functions cache breaks reusable code
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- fsharp, react
- Ambito
- frontend
Direzione di ricerca
Inizia dall’implementazione di FunctionComponent.Of e analizza come viene costruito il suo cacheKey a partire dalla posizione nel codice sorgente del chiamante. Riproduci il caso di codice riutilizzabile descritto nell’issue, quindi verifica che funzioni distinte non condividano più una voce della cache, mantenendo intatto il comportamento di caching esistente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
This is how FunctionComponent.Of caches passed function:
// Cache the render function to prevent recreating the component every time when FunctionComponent.Of
// is called inside another function (including generic values: let MyCom<'T> = ...)
let cacheKey = __callingSourceFile.Value + "#L" + (string __callingSourceLine.Value)
I have a reusable piece of code that uses FunctionComponent.Of for different cases and they result in the same cacheKey. So it picks a wrong function at runtime for all cases but one.
At least the displayName should also be part of the cacheKey (I pass a custom value anyway) or accept optional custom cacheKey (although that would reveal its implementation).
None of the options is available which keeps me pinned to Fable.React 5.4.0 (last version before function caching was intorduced)
- Lingua principale
- F#
- Stelle
- 276
- Fork
- 65
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
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 fable-compiler/fable-react
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
fable-compiler/fable-react#243 · 3 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
fable-compiler/fable-react#240 · 5 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
fable-compiler/fable-react#239 · 3 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
fable-compiler/fable-react#236 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 18/100
fable-compiler/fable-react#232 · 7 commenti · 3 reazioni ·
Tutte le issue di fable-compiler/fable-react
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
yjh051108/dsh-routing-suite#216 ·
-
kind/bug priority/needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
bug user-priority/P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 Mezza giornata Idoneità per principianti 66/100
apache/fineract-consumer-facing#175 ·
I maintainer di solito rispondono entro 1 giorno
-
bug confirmed perf
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
videojs/video.js#9400 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno