Wpis z mikrobloga

Cześć Mirki, mógłby mi ktoś pomóc. Mam totalnie głupi problem i nie wiem jak go rozwiązać :/

const StepOneForm = ({initialValues, setInitialValues, handleAdd}) => {
const onSubmit = (event) => {
event.preventDefault();
handleAdd();
}
const onChange = (event) => {
console.log(initialValues)
console.log(initialValues.clothesReUsed === undefined ? false : true )
setInitialValues({[event.target.value]: event.target.checked})
};

return (
<>
onSubmit(event)}>
Zaznacz co chcesz oddać:
------------------------

onChange(event)} checked={false} />ubrania, które nadają się do ponownego użycia
onChange(event)} />ubrania, do wyrzucenia
onChange(event)} />zabawki
onChange(event)} />książki
onChange(event)}/>inne

Dalej

)
}

Chciałbym żeby checked było zależne od initialValues.nazwa klucza taka sama jak value danego radio inputa ale nie wiem jak dokładnie zapisać ten warunek. Za każdym razem mam bład Cannot read property 'clothesReUsed' of undefined. Wydawało mi się, że to initialValues.clothesReUsed === undefined ? false : true powinno być ok
#react
  • 1
@wipeoutSpoon: chodzi o to, że initialValues jest undefined, więc mógłbyś ustawić go na początku jako pusty obiekt, więc const StepOneForm({ initialValues = {}, ...}).
Tak btw, jak masz funkcje onSubmit, onChange, to nie musisz robić onChange={e => onChange(e)}, tylko onChange={onChange}