kolibri
kolibri copied to clipboard
🐞 Bug: `input-radio` akzeptiert keine stringifizierten Zahlenwerte
Fehlermeldung
Beschreibung des Fehlers
Sind die Werte eines input-radio
stringifizierte Zahlenwerte, wird nicht der gesetzte Wert gesetzt.
Reproduktion
<KolInputRadio
_label={'Radio group'}
_value="310002"
_options={[
{ label: 'Ja', value: '310000' },
{ label: 'Nein', value: '310001' },
{ label: 'Unbekannt', value: '310002' },
]}
/>
Wird der Wert alphanumerisch, funktioniert es:
<KolInputRadio
_label={'Radio group 2'}
_value="A310002"
_options={[
{ label: 'Ja', value: 'A310000' },
{ label: 'Nein', value: 'A310001' },
{ label: 'Unbekannt', value: 'A310002' },
]}
/>
Link zu StackBlitz
Erwartetes Verhalten
Der gesetzte Wert von _value
wird auch ausgewählt.
Screenshots
Zusätzlicher Kontext
Der Bug wurde intern gemeldet.
Das folgende Ticket kann man ggf. gut mit diesem zusammen bearbeiten: https://github.com/public-ui/kolibri/issues/5992
Ich würde mir das mal anschauen. Kann mich leider nicht auf das Ticket assignen, desshalb der Kommentar. :)
Also meine Lösung funktioniert soweit. Frage ist nur, ob das so elegant ist. Und an einer Stelle könnte man bestimmt noch refaktorn, aber ich war mir nicht sicher, inwiefern die abfolge des Codes wichtig ist.
Ich konnte das Problem auf Ebene der Web Components nicht reproduziert. Alle Typen der bleiben stabil.
- [x] v1: https://github.com/public-ui/kolibri/tree/5196c72973346a1223591dcfc4e7019222ca7dc4
- [x] v2: https://github.com/public-ui/kolibri/tree/737948adb7350359fa2173077042b92d2ead575a
Wir sollten das Beispiel nun im React-Kontext ausprobieren.
- [ ] v1:
- [ ] v2:
@deleonio in dem Beispiel oben von @laske185 entspricht der value
bei beiden Beispielen nicht dem was mit _options
mitgegeben wurde. Der erste Radiobutton hat einen value von -0
, der nächste -1
usw.
Hier https://github.com/public-ui/kolibri/issues/2152 wurde ja schonmal geschrieben, warum das so ist. Allerdings wird das onChange
-Event nicht mehr vom InputRadio aufgerufen und onInput
hat keinen Value. Somit funktioniert der "Workaround" auch nicht mehr.
In Version 2 von KoliBri werden wir auch statische Formulare voll unterstützen und dafür wird hier, wie Du auch erwartest, wieder genau der Wert stehen, den Du reingegeben hast. (Ist für static Forms nötig) Der Komfort für die App-Entwicklung wird wegfallen, kann aber mittels Formatter/Parsern vor Inputs leicht gehandled werden.
Lt. #2152 wolltet ihr ab v2.0 die Platzhalter-Values wieder entfernen. Gab es einen Grund warum das doch nicht passiert ist?
Hallo @Chrisdo82,
danke für den Hinweis aus dem Ticket #2152. Das Angleichen des Wertes im DOM und im JavaScript ist weiterhin der Plan.
Da der Wert bei Eingabefeldern mit KoliBri immer aus der onChange / onInput geholt werden soll, seit Anfang an, gab es keinen dringenden Grund die Änderung vorzuziehen.
Die Unterstützung statischer Formulare ist auch in Version 2 noch experimentell, wobei es schon zahlreich erfolgreich eingesetzt wird. Ausnahme sollte das Radio sein.
Hier haben wir auch eine Demo dazu: https://public-ui.github.io/v2/sample-react/#/scenarios/static-form
Was hindert Euch daran, einfach den Value aus den Events - onChange und onInput zu verwenden, wie das seit jeher funktioniert?
Was hindert Euch daran, einfach den Value aus den Events - onChange und onInput zu verwenden, wie das seit jeher funktioniert?
@deleonio in der Version 2.0.12
wurde kein Value beim onInput
mitgegeben, was die Komponente für uns unbrauchbar gemacht hat. Deshalb hatte ich hier auch nochmal dazu geschrieben. Mit der 2.0.14
geht es aber wieder.