Select loses its bound value when options load asynchronously
Los mantenedores suelen responder en 1 día
@MokiMeow ya está trabajando en esto.
Desde el 8/10/2026.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- Medio día
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, typescript
- Área
- frontend
Línea de trabajo
Start by reproducing the report with a client-only <select value="b"> whose <option> children come from an async createMemo inside a Loading boundary, using the linked playground. Look at how the renderer applies the value binding to a select element, especially the immediate assignment and the microtask reapplication the reporter describes. Done means the bound option is selected once the async options arrive, and the case passes in both development and production builds.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
A <select value="b"> selects the first option (a) when its options come from an async createMemo, even inside a Loading boundary. Once loading finishes, both options exist, but the bound value is not selected.
Your Example Website or App
https://s.olid.uk/id/36b77c4b-f856-46fc-ba7f-9079194065f3
Steps to Reproduce the Bug or Issue
- Open the playground and wait for the 200ms load to finish.
- The dropdown shows
a, although the JSX specifiesvalue="b". - Remove
await delay(200)from the memo. The same example correctly selectsb.
Expected behavior
When the options finish loading and the select is revealed, it should select b, matching its bound value.
Screenshots or Videos
No response
Platform
- OS: Linux (WSL)
- Browser: Chromium 153.0.8010.12
- Solid:
solid-js,@solidjs/web, and@solidjs/compiler2.0.0-rc.14
Additional context
Reproduces in development and production, with client rendering only.
The select value is assigned immediately and again in a microtask, while there are no options. When the async options arrive later, the browser selects the first one and the value binding is not reapplied.
The repro does not require SSR, component wrappers, actions, stores, or styling.
- Lenguaje dominante
- TypeScript
- Estrellas
- 36.1k
- Forks
- 1.1k
- Merge medio
- 11 h 25 min
- PR fusionados (30 d)
- 345
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 solidjs/solid
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 18/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 24/100
solidjs/solid#3923 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 8/100
Los mantenedores suelen responder en 1 día
Todos los issues de solidjs/solid
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
MystenLabs/MemWal#1163 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Mondriaan
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
knaw-huc/textannoviz#709 ·
Los mantenedores suelen responder en 1 día
-
billion-context-pi
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ranxianglei/billion-context#2521 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Add: YRF Music NepalAbiertostreams:add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100