首页 > 解决方案 > 当我尝试为其设置文件时,反应组件会更改其他组件状态。我该如何解决?

问题描述

我有一个反应组件,其状态包含文件源、文件 URL 和来自同一组件中的文本字段的一些其他值。当我多次渲染该组件并尝试为它们设置文件时,它适用于第一个,但是当我尝试在第二个或第三个等组件上设置文件时,它会将该文件设置为第一个仅(第一个组件状态)。状态不是共享的,也不是从父组件中拉下来的。当我尝试更改文本字段中的文本时,它工作正常,文本出现在所有这些字段中应该出现的位置。任何想法这有什么问题,我该如何解决这个问题?提前致谢。

组件状态和状态处理程序代码:

const [value, setValue] = useState({
    fileSrc: null,
    fileURL: '',
    name: '',
    desc: '',
    price: 0,
});

const handleFile = (e) => {
    setValue({
        ...value,
        fileSrc: e.target.files[0],
        fileURL: URL.createObjectURL(e.target.files[0])
    });
};

const handleValueChange = (prop) => (event) => {
    setValue({ ...value, [prop]: event.target.value });
};

标签: javascriptreactjs

解决方案


推荐阅读