У меня есть флажки для каждого td
в таблице.Теперь у меня есть другая таблица, которая имеет один флажок.При проверке этого я хочу установить все остальные флажки первой таблицы.
Вот код,
<tr key={key}>
<td align="center"> <input type="checkbox" name="myTextEditBox" value="checked" /></td>
<td>{item.technology}</td>
</tr>
для второй таблицы, которую я сделал,
handleCheckBox = () => {
console.log("callling the handle change");
this.setState({
isCheckd: !this.state.isCheckd
})
}
constructure(props) {
this.state = { isCheckd: false }
<td className="text-right mr-1"><input type="checkbox" checked={this.state.isCheckd} onChange={this.handleCheckBox} /></td>
}
Теперь в этом обработчик кликов работает.Но теперь, как мне установить все остальные флажки в другой таблице без использования jquery.
Может ли кто-нибудь помочь мне с этим?
Пробное решение -
state = { dynamicProp: {}, isCheckd: false,}
handleCheckBox = () => {
this.setState({
isCheckd: !this.state.isCheckd
}, () => {
this.props.jobs.forEach((item) =>
this.setState(prevState => ({
dynamicProp: {
...prevState.dynamicProp,
[item.jdName]: prevState.isCheckd
}
})
))
});
}
handleTableCheckboxChange = (e) => {
const target = e.target.name;
const checked = e.target.checked;
this.setState(prevState => ({
dynamicProp: {
...prevState.dynamicProp,
[target]: checked
}
}), () => {
const result = this.allTrue(this.state.dynamicProp);
this.setState({
isCheckd: result ? false : true
})
})
}
allTrue(obj) {
for (var o in obj)
if (!obj[o]) return true;
return false;
}
а затем передать все реквизиты дочернему элементу.Теперь проблема, с которой я сталкиваюсь сейчас, заключается в методе handleTableCheckboxChange, где я не понимаю, как вы использовали фильтр для получения непроверенного элемента.а затем отметьте галочкой все изменения.