Wpis z mikrobloga

Mam taki kod:

const handleDepartmentInputChange = (selected) => {
if (selected === null) {
let modifiedInputs = { ...inputs };
modifiedInputs[scope]['query_department'] = '';
setInputs(modifiedInputs);
} else {
let modifiedInputs = { ...inputs };
modifiedInputs[scope]['query_department'] = selected.value.toString();
setInputs(modifiedInputs);
}
};

wywala się przy undefined, jak sobie z tym poradzić z klasą?

Wydaje mi się, że selected === null zmieię na: selected === null || selected === undefined i styknie.

selected to jest wartość inputu.

#webdev #react #javascript #programowanie
  • 7
  • Odpowiedz
  • 0
@z--x: znaczy, to musi być string, obiekt z wartością value.

Coś takiego wymyśliłem.

const handleDepartmentInputChange = (selected) => {
let modifiedInputs = {
  • Odpowiedz
@pyroxar: masz w tym kodzie buga: let modifiedInputs = { ...inputs }; robi tylko shallow copy inputs, a modyfikujesz wewnętrzny obiekt w modifiedInputs[scope]. Powinno to być coś takiego, zwróć uwagę na tworzenie kopii obiektu pod inputs[scope]
setInputs({ ...inputs, [scope]: { ...inputs[scope], query_department: selected?.value?.toString() ?? '' } });
  • Odpowiedz