通过选择文件输入上传图像后,使用React hooks
如何在previewProfilePic > img
区域下预览图像。
import React, { useState } from "react";
const Register = () => {
const [picture, setPicture] = useState(null);
const onChangePicture = e => {
console.log('picture: ', picture);
setPicture(e.target.files[0]);
};
return (
<div className="register_wrapper">
<div className="register_player_column_layout_one">
<div className="register_player_Twocolumn_layout_two">
<form className="myForm">
<div className="formInstructionsDiv formElement">
<h2 className="formTitle" >Sign Up</h2>
<p className="instructionsText"></p>
<div className="register_profile_image">
<input id="profilePic" type="file" onChange={onChangePicture}/>
</div>
<div className="previewProfilePic" >
<img className="playerProfilePic_home_tile" src=""></img>
</div>
</div>
<div className="fillContentDiv formElement">
<div className="names formContentElement">
<input className="inputRequest " type="text" placeholder="First Name" />
<input className="inputRequest " type="text" placeholder="Last Name" />
</div>
</div>
<div className="submitButtonDiv formElement">
<button className="submitButton">Register</button>
</div>
</form>
</div>
</div>
</div>
);
}
export default Register;
<div className="register_profile_image">
<input id="profilePic" type="file" onChange={onChangePicture}/>
</div>
为了查看预览,您需要读取图像,并使用接收到的base64格式数据设置状态并将其呈现为图像标签的来源。
要读取文件数据,您可以利用 FileReader
export default () => {
const [picture, setPicture] = useState(null);
const [imgData, setImgData] = useState(null);
const onChangePicture = e => {
if (e.target.files[0]) {
console.log("picture: ", e.target.files);
setPicture(e.target.files[0]);
const reader = new FileReader();
reader.addEventListener("load", () => {
setImgData(reader.result);
});
reader.readAsDataURL(e.target.files[0]);
}
};
return (
<div className="register_wrapper">
<div className="register_player_column_layout_one">
<div className="register_player_Twocolumn_layout_two">
<form className="myForm">
<div className="formInstructionsDiv formElement">
<h2 className="formTitle">Sign Up</h2>
<p className="instructionsText" />
<div className="register_profile_image">
<input id="profilePic" type="file" onChange={onChangePicture} />
</div>
<div className="previewProfilePic">
<img className="playerProfilePic_home_tile" src={imgData} />
</div>
</div>
<div className="fillContentDiv formElement">
<div className="names formContentElement">
<input
className="inputRequest "
type="text"
placeholder="First Name"
/>
<input
className="inputRequest "
type="text"
placeholder="Last Name"
/>
</div>
</div>
<div className="submitButtonDiv formElement">
<button className="submitButton">Register</button>
</div>
</form>
</div>
</div>
</div>
);
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句