You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何将图片URL存入AddProjects.Img状态属性?

解决React中图片URL无法存入AddProjects.Img的问题

问题出在你的imgChange函数里——你直接把生成的图片URL赋值给了整个AddProjects状态,替换了原本的对象结构。这时候AddProjects从包含name、Discription、git、Img的对象变成了字符串,所以AddProjects.Img会是undefined,但直接用AddProjects时刚好就是那个URL,因此能正常显示。

只需要修改imgChange函数,保持状态的对象结构,仅更新Img字段:

function imgChange(e) {
  console.log(e.target.files);
  // 先判断是否选中了文件
  if (!e.target.files[0]) return;
  
  setAddProjects((prevProjects) => ({
    ...prevProjects, // 保留原有所有属性
    Img: URL.createObjectURL(e.target.files[0]) // 仅更新Img字段
  }));
}

修改后,AddProjects始终保持对象结构,AddProjects.Img就能正确存储图片的临时URL,<img src={AddProjects.Img} alt="" />也能正常工作了。

额外提醒:临时对象URL会占用浏览器资源,建议在组件卸载时释放,可添加useEffect:

import { useEffect } from 'react';

// 在组件内部添加
useEffect(() => {
  return () => {
    if (AddProjects.Img) {
      URL.revokeObjectURL(AddProjects.Img);
    }
  };
}, [AddProjects.Img]);

内容的提问来源于stack exchange,提问作者newtocodeing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:15:09