我正在try 在我的web应用程序中显示从我的计算机中 Select 的图像.我提到了下面的问题,它解决了我试图解决的问题.

How to display selected image without sending data to server?

我的html部分是这样的

 <div className="add_grp_image_div margin_bottom">
      <img src={img_upload} className="add_grp_image"/>
      <input type="file" className="filetype" id="group_image"/>
      <span className="small_font to_middle">Add group image</span>
      <img id="target"/>
 </div>

我想在屏幕上显示选定的图像

<img id="target"/>

我该怎么做?

我还提到了FileReader个doctor .

https://developer.mozilla.org/en-US/docs/Web/API/FileReader

推荐答案

试试这个

<input type="file" onChange={this.onImageChange} className="filetype" id="group_image"/>

向类添加方法

onImageChange = (event) => {
  if (event.target.files && event.target.files[0]) {
    let reader = new FileReader();
    reader.onload = (e) => {
      this.setState({image: e.target.result});
    };
    reader.readAsDataURL(event.target.files[0]);
  }
}

或者你可以用URL.createObjectURL

onImageChange = (event) => {
 if (event.target.files && event.target.files[0]) {
   this.setState({
     image: URL.createObjectURL(event.target.files[0])
   });
 }
}

并显示图像

<img id="target" src={this.state.image}/>

For the hook version:

const [image, setImage] = useState(null)

const onImageChange = (event) => {
 if (event.target.files && event.target.files[0]) {
   setImage(URL.createObjectURL(event.target.files[0]));
 }
}

return (
  <div>
    <input type="file" onChange={onImageChange} className="filetype" />
    <img src={image} alt="preview image" />
  </div>
)

Reactjs相关问答推荐

如何通过浏览器路由在单独的.jsx文件中使用MUI抽屉?

将cy.get()与动态类名一起使用?

App.js中的H2组件不会动态呈现.这可能是什么问题?

如何在NextJS中仅在刷新页面和页面淡出页面过渡时添加全屏加载器

左边框不在图表中显示

当项目开始时,它不会从三元运算符(REACT)加载一些tailwind 类名称

如何获取用户在 GooglePlacesAutocomplete 中输入的文本?

如何清除过滤器搜索的状态

React中的功能性组件克隆优化

BrowserRouter改变了URL但没有链接到页面

如何在Next.js应用程序中为路由[slug]生成.html文件?

onChange in useEffect 的最佳实践

添加 React/Redux 组件模板的 VS Code 扩展

ReactJS:useMemo 钩子修复了我的无限重新渲染问题而不是 useEffect

React Router v6 - 访问嵌套路由和处理手写 url 的正确方法

在 Reactjs 中状态发生变化时渲染一个新组件而不替换旧组件

ReactJS:按钮启用禁用更改 colored颜色

试图将页面限制为仅登录但有条件的用户似乎永远不会运行

在状态中存储多个选定的选项

react / firebase 基地.如何在我的项目中保存更新的数据?