У меня есть функция отображения, которая отображает значения JSON в флажки, я пытался добавить потомки этих значений в качестве флажков под текущими флажками, и это работало нормально, но сейчас я пытаюсь сделать это, чтобы показатьфлажок 2 children, как только родительский флажок был установлен.
У меня есть Side Collection 1, и под ним есть дочерние элементы (сторона 1 и сторона 2), что я пытался, но не мог сделать, это показать (сторона 1 ифлажки «сторона 2»), если один раз (флажок «Сбор стороны 1») установлен, значения флажков передаются в виде реквизитов от Checkbox.js до Itemlist.js , где происходит выборка / сопоставление.Буду признателен, если кто-нибудь сможет объяснить или продемонстрировать, как этого можно достичь.
Я выполнил нужную мне функцию в vanillajs, но я не уверен, как добавить ее в мое приложение реакции, особенно в функции отображения., я новичок, чтобы реагировать
Фрагмент функции: https://codepen.io/alaafm/pen/eXGZbO?editors=1010
React Live Snippet: https://codesandbox.io/embed/5w8vwwmn5p?fontsize=14
Checkbox.js
class Checkboxes extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<form className="form">
<div>
<h2>{this.props.title}</h2>
<div className="inputGroup">
<input
id={this.props.childk + this.props.name}
name="checkbox"
type="checkbox"
/>
<label htmlFor={this.props.childk + this.props.name}>
{this.props.name}{" "}
</label>
</div>{" "}
{this.props.options &&
this.props.options.map(item => {
return (
<div className="inputGroup2">
{" "}
<div className="inputGroup">
<input
id={this.props.childk + (item.name || item.description)}
name="checkbox"
type="checkbox"
/>
<label
htmlFor={
this.props.childk + (item.name || item.description)
}
>
{item.name || item.description}{" "}
{/** <img src={this.props.img} alt="" /> <span className="pricemod">{props.childprice} SAR</span>
*/}
</label>
</div>
</div>
);
})}
</div>
</form>
);
}
}
export default Checkboxes;
Itemlist.js
...
<div>
{selectedMod &&
selectedMod.children &&
selectedMod.children.map((item, index) => (
<Checkboxes
key={index}
name={item.name || item.description}
myKey={index}
options={item.children}
childk={item.id}
limit={item.max}
/>
))}
</div>
...
Функция JS , которую я хочу добавить
const myCheck2 = document.getElementById("check2");
const dib = document.getElementById("dib");
function change() {
if (myCheck2.checked) {
dib.style.display = "block";
dib2.style.display = "block";
}
else{
dib.style.display = "none";
dib2.style.display = "none";
}
}
function func2() {
if (this.checked) {
myCheck2.checked = false;
dib.style.display = "none";
}
else {
dib.style.display = "block";
myCheck2.checked = true;
}
}
myCheck2.addEventListener('click', change);