`styled()` crashes with `Maximum call stack size exceeded` when wrapping `react-native-svg` primitives
I maintainer di solito rispondono entro 3 giorni
@marklawlor ci sta già lavorando.
Dal 15/7/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Describe the bug
In [email protected], the documented v5 third-party-component recipe for react-native-svg throws on first render:
RangeError: Maximum call stack size exceeded (native stack depth)
The same crash also fires when calling useUnstableNativeVariable() from a component rendered inside an SVG tree — so the bug appears to live in the shared observable/effect layer that both APIs route through (useNativeCss → varResolver → reactivity graph), not in styled() itself.
Plain <Svg color={someStaticHex} /> with the color resolved outside of any NativeWind runtime hook renders correctly. Only the NativeWind runtime path crashes.
Versions:
nativewind:5.0.0-preview.4react-native-css:3.0.7react-native-svg:15.15.4react-native:0.85.3react:19.2.3expo:56.0.11(SDK 56)tailwindcss:4.2.0(Tailwind v4,@theme {}block)- Platform: iOS simulator, Hermes
Reproduction
npx rn-new@latest --nativewind then drop in:
import { styled } from 'nativewind';
import Svg, { Path } from 'react-native-svg';
const StyledSvg = styled(Svg);
const StyledPath = styled(Path);
export default function App() {
return (
<StyledSvg width={24} height={24} viewBox="0 0 24 24" className="text-red-500">
<StyledPath d="M2 12h20" stroke="currentColor" strokeWidth={2} />
</StyledSvg>
);
}
The documented nativeStyleMapping recipe reproduces the same crash:
const StyledSvg = styled(Svg, {
className: { target: 'style', nativeStyleMapping: { color: 'color' } },
});
Expected behavior
styled(Svg, { className: { target: 'style', nativeStyleMapping: { color: 'color' } } }) should resolve text-… classes to a color value and lift it onto the <Svg color={…}> prop, so stroke="currentColor" on descendants follows the Tailwind text color. This is the v4 cssInterop recipe that the v5 third-party-components guide still points to.
Additional context
Two suspect spots in [email protected] that fit the symptom (not confirmed by runtime instrumentation):
useNativeCssrunssetStateduring render iftestGuardsflips.react-native-svg'sSvg/Shapeclass components rebuild prop derivations on every render (extractedProps,SvgTouchableMixin,setNativeProps), so an identity-based guard may flip on every iteration and recurse synchronously.varResolver'svariableHistoryonly blocks repeating the same variable name — it doesn't catch cycles across different names. Tailwind v4 OKLCH palette colors compile to nestedvar()chains, which may be enough to trigger that.
Workaround in use: resolve the color from className ourselves via useColorScheme() + a static token map mirrored from our @theme {} block, then pass it as <Svg color={…} />. Inner Path/Circle stay as plain react-native-svg primitives with stroke="currentColor". Works, but duplicates values from CSS and can't read live runtime variables.
What I tried that did not help:
- Every
nativeStyleMappingshape onstyled(Svg, …). - Wrapping only the outer
<Svg>and leaving inner primitives untouched. - Calling
useUnstableNativeVariable('color-foreground-tertiary')before any SVG primitive renders — still crashes.
Related: #242 — [V5] - styled doesn't work as it worked in V4 — same symptom shape, marked Done in roadmap but not yet in a published preview.
- Lingua principale
- TypeScript
- Stelle
- 166
- Fork
- 45
- Merge medio
- 13g 14h
- PR unite (30g)
- 1
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 nativewind/react-native-css
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
nativewind/react-native-css#545 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
nativewind/react-native-css#544 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
nativewind/react-native-css#543 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
nativewind/react-native-css#540 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
nativewind/react-native-css#538 ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di nativewind/react-native-css
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
lichess-org/lila#22324 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature Request] [Web] Expose kvCacheQuantizationBits in the onnxruntime-web WebGPU EP optionsApertaep:WebGPU platform:web quantization
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
microsoft/onnxruntime#33752 ·
I maintainer di solito rispondono entro 2 giorni
-
[Skill Bug]: entra-agent-id: inaccurate blueprint permission inheritance and parent token sub claimApertabug entra-agent-id
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
microsoft/GitHub-Copilot-for-Azure#3467 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
fix(worker): keep normal prepare waiting states failure-freeForse già presa @LichKing-2234 l’ha presa oggi. Apertaagent:codex priority:P1
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
AgoraIO-Extensions/agent-infra#3745 ·
I maintainer di solito rispondono entro 1 giorno
-
The five-line work window can drop its oldest line: the per-line byte share ignores the JSON framingForse già presa @Eapp1e l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
makecindy/cindy#7973 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno