Javascript 如何使用react显示嵌套元素
我正在创建动态元素,当用户单击Javascript 如何使用react显示嵌套元素,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我正在创建动态元素,当用户单击add时,我正在创建另一组元素 一旦我创建了元素,我就有一个选择选项,所以在选择特定的选项时,我会再创建一个字段 我有名字和选择年龄两个元素,其中年龄为>18和18,然后将状态设置为该值并显示新的输入字段 但它并没有像预期的那样工作,当我在第一组元素中选择>18并选择时,我建议要么通过更新现有inputHolder来跟踪年龄输入,要么通过单独的状态来跟踪。是这样的: 更改年龄后更新 const onChangeAge = (e, ind) => {
add
时,我正在创建另一组元素
一旦我创建了元素,我就有一个选择选项,所以在选择特定的选项时,我会再创建一个字段
我有名字
和选择年龄
两个元素,其中年龄为>18
和18,然后将状态设置为该值并显示新的输入字段
- 但它并没有像预期的那样工作,当我在第一组元素中选择
>18
并选择时,我建议要么通过更新现有inputHolder
来跟踪年龄输入,要么通过单独的状态来跟踪。是这样的:
更改年龄后更新
const onChangeAge = (e, ind) => {
console.log(e.target.value);
let val = e.target.value;
console.log(typeof ind, ind, typeof val);
let inputHolderCopy = [...inputHolder];
setindexVal(ind);
inputHolderCopy = inputHolderCopy.map((data) => {
if (data.id === ind + 1) {
return { ...data, currentSelectedAge: val };
}
return data;
});
setinputHolder(inputHolderCopy);
if (val === "<=18 ") {
console.log("Hello");
setageVal(true);
} else {
setageVal(false);
}
}
const onchangage=(e,ind)=>{
console.log(如target.value);
设val=e.target.value;
console.log(类型为ind,ind,类型为val);
让inputHolderCopy=[…inputHolder];
setindexVal(ind);
inputHolderCopy=inputHolderCopy.map((数据)=>{
如果(data.id==ind+1){
返回{…数据,currentSelectedAge:val};
}
返回数据;
});
setinputHolder(inputHolderCopy);
如果(val=="在select
元素的onChange
处理程序中,您没有更新该输入的年龄。以下是您需要在代码中进行的几项更改以解决问题。嘿,在您的情况下,我已经尝试过它,它工作正常,但是如果我选择了其他内容,我如何从状态中删除它?您的意思是,如果您选择了不同的年龄输入应该删除?我已经更新了代码。在每个对象中跟踪似乎更好。检查沙盒
{onChangeAge && li.currentSelectedAge === "<=18" && (
<div>
<input
type="text"
name={`data[${index}].idCred`}
id="idCred"
placeholder="ID"
ref={register({ required: "ID is required" })}
/>
<br></br>
<label htmlFor="idCred">Name</label>
</div>
)}