Dynamically changing props (e.g. visibleEdgeColor) of Outline breaks it / no longer renders
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- react, three.js, typescript
- Área
- computer-graphics, frontend
Línea de trabajo
La reproducción es el CodeSandbox enlazado que usa EffectComposer y Outline; empieza ejecutándolo y comparando fixed con changing visibleEdgeColor. Sigue esos puntos de entrada de los componentes para averiguar por qué la actualización de la prop deja de renderizar, y considera el problema resuelto cuando el color pueda cambiar sin cambiar la key de EffectComposer mientras el renderizado continúa.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Demo of bug and workaround: https://codesandbox.io/s/bug-change-outline-color-dmu52j?file=/src/App.js
✅ Constant/fixed visibleEdgeColor
<EffectComposer multisampling={8} autoClear={false}>
<Outline
blur edgeStrength={100} width={500}
visibleEdgeColor="red"
/>
</EffectComposer>
🔥 Dynamically changing visibleEdgeColor breaks Outline, stops rendering
+ // `color` variable is dynamically changing
<EffectComposer multisampling={8} autoClear={false}>
<Outline
blur edgeStrength={100} width={500}
+ visibleEdgeColor={color}
/>
</EffectComposer>
Workaround
Changing the
visibleEdgeColorof Outline element breaks it.
Workaround is to change thekeyofEffectComposerso everything re-mounts and re-renders.
<EffectComposer
multisampling={8} autoClear={false}
+ key={color}
>
<Outline
blur edgeStrength={100} width={500}
- visibleEdgeColor={"red"}
+ visibleEdgeColor={color}
/>
</EffectComposer>
To see this in action, change the APPLY_WORKAROUND in the demo sandbox.
Is this expected behaviour? Thanks!
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.4k
- Forks
- 134
- Merge medio
- 4 min
- PR fusionados (30 d)
- 4
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de pmndrs/react-postprocessing
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
pmndrs/react-postprocessing#343 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
pmndrs/react-postprocessing#286 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
pmndrs/react-postprocessing#280 · 2 comentarios · 1 reacción ·
-
enhancement
pmndrs/react-postprocessing#253 · 4 reacciones · 1 asignado ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
pmndrs/react-postprocessing#240 · 1 comentario · 1 reacción ·
Todos los issues de pmndrs/react-postprocessing
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mksglu/context-mode#1200 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
jaegertracing/jaeger-ui#4506 ·
-
area:desktop area:ui bug platform:macos
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
anthropics/claude-code#96687 ·
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
AOSSIE-Org/DebateAI#582 · 2 comentarios ·