Open mariusingjer opened 4 days ago
Enig. Når vi først har valgt å ta inn en value
så må vi ta hensyn til verdien av den.
@mariusingjer Når jeg tester dette lokalt på dev-serveren så fungerer det fint å endre value
både før og etter at jeg har gjort et manuelt valg.
Relevante biter av koden i Select er
const valueIsInItems: boolean = useMemo(() => {
if (typeof value === "undefined") {
return false;
}
return items.some((item) =>
typeof item === "string"
? item === value
: item.value === value,
);
}, [value, items]);
og
useEffect(() => {
if (value === previousValue) {
return;
}
if (typeof value === "undefined" || !valueIsInItems) {
setSelectedValue("");
} else {
setSelectedValue(value);
}
}, [setSelectedValue, value, previousValue, valueIsInItems]);
Er det mulig å dra ut et kjørbart eksempel der det ikke fungerer så kan jeg prøve å bistå i feilsøking. Det er mye kompleksitet i den komponenten så det kan godt hende det er forskjellige ting som går i beina på hverandre men det er lettere å forstå hva dersom jeg klarer å provosere frem feilen.
Hmm, den effekten der burde håndtere det ja, jeg skal ta en titt på saken.
Eksempel:
Select value styres som internal state, det gjør det umulig å oppdatere fra utsiden, feks hvis du ønsker å endre verdien i select basert på endring av en annen verdi:
https://github.com/fremtind/jokul/blob/451818c62f94ef33a64c410c3805be5f6e3db063/packages/select-react/src/Select.tsx#L183
Forventet oppførsel
Jeg forventer at den skal fungere på samme måte som NativeSelect, dvs at jeg selected oppdateres seg hvis value prop endrer seg.