你能告诉我如何在反应中动态添加项目吗?
我收到来自服务器的响应(名称、标签等)。例如,我只是模拟了我的响应,两秒钟后我获取了它。
在我的示例中,我有两个选择框或下拉菜单。第一个下拉菜单的值是“one”和“two”(在 json 中作为选项给出)。
在 json 中还有一个选项dependentField
,这意味着该字段依赖于另一个字段(提到的值是依赖的)。在我的示例second
中,字段依赖于第一个字段。
因此,第二个选择或下拉字段的值将是["three", "four"]
第一个选择框或下拉值 id one
。
因此,第二个选择或下拉字段的值将是["five", "six"]
第一个选择框或下拉值 id two
。
所以我需要watch
提到字段的值hook form
https://react-hook-form.com/get-started
我们可以动态添加选项吗
这是代码
https://codesandbox.io/s/stoic-benz-lxb8i
useEffect(() => {
console.log("====");
(async () => {
var a = await FETCH_API();
console.log("sssss");
setState(a);
console.log(a);
})();
}, []);
const getForm = () => {
try {
return state.map((i, index) => {
switch (i.type) {
case "text":
return (
<div key={index}>
<label>{i.label}</label>
<input type="text" ref={register()} name={i.name} />
</div>
);
case "select":
if (i.watch) {
watch(i.name, null);
}
return (
<div key={index}>
<label>{i.label}</label>
<select name={i.name} ref={register()}>
{i.options.map((i, idx) => {
return (
<option key={idx} value={i}>
{i}
</option>
);
})}
/
</select>
</div>
);
default:
return <div>ddd</div>;
}
});
return <div>ddd</div>;
} catch (e) {}
};
我不想做任何 harcoading 之类的
useEffect(()=>{
},[‘first’])
我们可以动态观察或添加useeffect来动态观察变化吗?
任何更新