javascript - 我想显示所有图像预览,但是每当我上传新图像时,旧图像就消失了
问题描述
正如我上面的标题所说,我有一个问题。我有 4 种输入文件类型,它必须分为 4 个按钮,但是每当我尝试上传新的时,旧的预览就消失了,但它仍然在那里。我用 reactjs 来做这个。
每当我尝试在这里搜索时,它总是关于多张图片上传预览。但我尝试做的是一一上传和预览。
我已经在这里制作了一个代码框: https ://codesandbox.io/s/happy-bardeen-q89rr ?fontsize=14
有人可以帮我解决这个问题吗?我做了一些技巧将它保存在本地存储中,但它仍然无法正常工作
解决方案
问题在于状态集或结构,具体取决于观点。
这是您的初始状态:
state = {
form: {
frontDesign: [],
backDesign: [],
leftDesign: [],
rightDesign: []
}
};
但是,每次使用新值更新时,都会覆盖以前的值
this.setState(state => ({
...state,
form: {
frontDesign: [reader.result]
}
}));
注意state
已经包含表单对象,您正在设置一个新状态,仅form { frontDesign: value }
如上例所示。
您要么摆脱表单对象包装器,要么以这种方式设置状态
this.setState(state => ({
form: {
...state.form,
frontDesign: [reader.result]
}
}));
注意...state.form
传播。
如果有其他问题,请告诉我。
推荐阅读
- com - IUnknown(IXRApplication) 上的 AddRef 崩溃
- javascript - 二维码base64字符串
- amazon-web-services - ssh_exchange_identification:读取:对等 AWS 重置连接
- java - 如何在不停止整个程序的情况下在java中等待
- python - tensorflow 1.8 版中 tf.contrib.seq2seq.prepare_attention() 的替代方案
- vuex - Vuex 如何在传输读取中将存储绑定到 KendoUi-Vue Grid
- reactjs - React/Jest 错误:无法识别导入的函数
- node.js - req.session.destroy 和护照注销不会破坏客户端的 cookie
- python - 多个数据库的 Django Templateform 问题
- bash - bash 脚本 if / else 不区分大小写的答案