Poniższą funkcję przekazuję do podległych komponentów jako onChange
.
//główny komponent ze stanem
const changeValue = (value, name) => {
setItems(prev => {
const newState = prev.map(x=>{
if (x.name === name) {
return value;
}
return x;
});
return newState;
})
}
Przykładowy komponent, który wykorzystuje przekazaną funkcję.
function RadioGroup(props) {
const [globalId, setGlobalId] = useState(1);
...
const removeChoice = (choiceId) => {
const radio = { ...props.data };
radio.choices = [...props.data.choices.filter(x=>x.value !== choiceId)];
props.onChange(radio);
}
...
}
Czy wykorzystanie props
do przygotowania nowej wartości stanu komponentu jest poprawne w przypadku komponentów funkcyjnych? Jeżeli nie, to jak do tego podejść.
Cały kod