#javascript #reactjs #react-native
#javascript #reactjs #react-native
Вопрос:
Когда я пытаюсь включить кнопку удаления, это не работает, хотя я ввел логику для этого .. На самом деле, после ввода следующего, кнопка удаления всегда включена. Не удается найти проблему. Вот код:
Sports.js
// initiallising states
const [items1, setItems1] = useState({
pageCount: '',
field_names_state: [],
toggle: false,
elements: [],
data_form: [],
sports_id: '',
buttonDisable: "0",
});
const onRadioChange = (e) => {
items1.sports_id = e.target.value;
items1.buttonDisable="1";
alert(items1.buttonDisable);
};
// mapping our fetched data and send them to Table_Sports.js
const data1 = items1.elements.map((item) => (
<Table_Sports key={item.sports_id} item={item} action={onRadioChange} />
));
<button type='button' disabled={items1.buttonDisable=="1"} onClick={(e) => handleDelete(e)}>
Delete
</button>
Table_Sports.js
<td>
<input
type='radio'
// defaultValue={props.item.sports_id}
defaultValue={props.}
name='sports_id'
onClick={(e) => props.action(e)}
/>
</td>
<td>
<input
type='text'
defaultValue={props.item.sports_name}
name='sports_name'
contentEditable='true'
/>
</td>
Комментарии:
1. Вы неправильно устанавливаете данные внутри функции «onRadioChange». Чтобы обновить значение параметра состояния в react, вам нужно написать » setItems1({ … items1, кнопка недоступна: «1» }); »
Ответ №1:
Чтобы изменить значение в состоянии, вы должны вызвать setItems1, передав новый объект состояния в качестве параметра вместо того, чтобы напрямую манипулировать его свойствами. Если вы измените свою функцию onRadioChange таким образом, она должна работать:
const onRadioChange = (e) => {
setItems1({
...items1,
sports_id: e.target.value,
buttonDisable: "1",
});
};