我正在从父组件获取一个对象并将其设置为State.在子组件中,我正在更新状态,但父引用对象的值也会更改,而不仅仅是状态更改.
Parent Component has a huge object,个
obj = {
values: {
per1: { name: "rsk" },
per2: { name: "ssk" },
}
}
Child Component:个
const ChildComponent = ({obj}) => {
const [inp, setInp] = useState(obj.values);
const onChange = useCallback(({target}) => {
setInp((prev) => {
const nD = { ...prev };
//k1, k2 comes from some logic
nD[k1][k2] = target.value;
return nD;
})
}, []);
return (
Here the "inp" state is looped by objects and keys in text box to build a html form
)
}
这里的问题是,为什么核心obj.值也在onChange setInp时间更改.在提交表单之前,我不想干扰obj.值. 因为在提交表格之前,我需要验证,
100
关于这件事的任何 idea .