Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

hidden="until-found" がAstro/Reactコンポーネントのスプレッドで値が落ちる

Abierto
#56 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
react, typescript
Área
frontend

Línea de trabajo

Read Lism.astro and setAccordion.js, then trace how hidden="until-found" passes through the component prop spread and how ACCORDION_HIDDEN_VALUE is obtained. Reproduce the static and spread cases described in the issue; done means the rendered attribute retains "until-found" and accordion interactions do not replace it with an empty value.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

wontfix 外部依存

概要

Lismコンポーネントに hidden="until-found" を渡すと、出力されるHTMLでは値が落ちて単なる hidden になってしまう。

原因

Astroのランタイム(render/util.ts)が hidden をboolean属性として扱っているため、{...props} でスプレッドする際に文字列値が無視され、truthy → hidden(値なし)に変換される。

  • 静的HTML: <div hidden="until-found"> → そのまま出力される(OK)
  • 動的スプレッド: <div {...{hidden: "until-found"}}> → <div hidden> になる(NG)

Lismコンポーネントは内部で <JSX {...getLismProps(props)}> とスプレッドしているため、後者のパターンに該当する。

getLismProps 自体は hidden: "until-found" を正しくパススルーしており、Lism側のprop処理には問題ない。

参考: React 18でも同様の問題がある(React 19で修正済み)
https://github.com/facebook/react/issues/24740

影響

  • Accordionパネルなど hidden="until-found" を使用するコンポーネントで、ブラウザのページ内検索(Find in Page)が正しく動作しない
  • setAccordion.js で初期値を getAttribute('hidden') で取得する処理にも波及し、JS側の開閉後も hidden="" になってしまう(デフォルトの 'until-found' が空文字で上書きされる)

対応案

  • Lism.astro で hidden を特別扱いし、スプレッドではなく直接属性として出力する方法を検討
  • setAccordion.js の ACCORDION_HIDDEN_VALUE 取得ロジックで空文字の場合にデフォルト値を維持する修正
Lenguaje dominante
TypeScript
Estrellas
283
Forks
8
Merge medio
6 h 37 min
PR fusionados (30 d)
15

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de lism-css/core

Todos los issues de lism-css/core

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.