Attrs are never observed unless added with `@attr` decorator
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
Línea de trabajo
Comienza con src/attr.ts, especialmente con defineObservedAttributes() y getAttrNames(), y compara después su comportamiento con el ejemplo vanilla de docs/_guide/attrs.md. Confirma si los atributos inicializados manualmente pueden observarse sin @attr; la tarea estará terminada cuando la implementación y la guía coincidan sobre cómo se especifican los atributos observados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi folks,
While I was testing the attributes — trying to work my way around #207 — I found another subtle detail. Manually initialized attributes are never observed.
Catalyst's guide provides the following example for vanilla users: https://github.com/github/catalyst/blob/main/docs/_guide/attrs.md#what-about-without-decorators.
Please notice the second argument there defineObservedAttributes(HelloWorldElement, ['foo']) and compare it with the actual function declaration:
https://github.com/github/catalyst/blob/a8fb3ba59a4ac258d0fe64a50ecd3b6997f5f016/src/attr.ts#L99
It doesn't expect the second argument (arguments aren't used either).
Now, internally defineObservedAttributes() pulls attribute names from getAttrNames(), which, in turn, pulls them from attrs (WeakMap). The only way to populate attrs is to use @attr decorator:
https://github.com/github/catalyst/blob/a8fb3ba59a4ac258d0fe64a50ecd3b6997f5f016/src/attr.ts#L15
Maybe I'm missing something, but it seems like there's no way to specify observed attributes without decorators. In any case, it'd be very nice to clarify that 🙂
Thank you!
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.4k
- Forks
- 61
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 8
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin 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 github/catalyst
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
-
EcmaScript DecoratorsAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
Todos los issues de github/catalyst
Issues similares
-
normalizePropName strips `#` characters from Figma property names instead of only the `#id` suffixAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
figma/code-connect#419 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
jeanibarz/knowledge-base-mcp-server#1268 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Koenkk/zigbee-herdsman-converters#13820 ·
Los mantenedores suelen responder en 2 días
-
A live recovery copy treats a large whole number and text with the same digits as the same valueAbiertobug sharing & sync
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día
-
[prefer-expect-resolves] autofix leaves a stray ")" when the awaited expression is parenthesizedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jest-community/eslint-plugin-jest#2052 ·