【发布时间】:2021-09-01 18:06:20
【问题描述】:
所以我试图将图像发送到我的 node.js api,但记录图像挂钩返回未定义。我尝试了多种方法,但每次我得到相同的未定义消息时,我都尝试过useState([])、useState(""),甚至是下面显示的示例。请帮助结束我的痛苦
import Cookies from "universal-cookie";
import FormData from "form-data";
export const CreateRecipe = () => {
const storageUrl = `http://${process.env.REACT_APP_API_URL}/storage/new`;
const cookies = new Cookies();
const token = cookies.get("token");
const [fileData, setFileData] = useState();
const getFile = (e) => {
setFileData(e.target.files[0]);
console.log(fileData);
};
const handleSubmit = async (e) => {
e.preventDefault();
const formData = new FormData();
formData.append("image", fileData);
fetch(storageUrl, {
method: "POST",
headers: {
Authorization: "Bearer " + token,
"Content-Type": "multipart/form-data",
},
body: formData,
})
.then((res) => res.json())
.then((data) => {
if (data.error) {
alert(data.message);
} else {
console.log(data);
}
});
};
return (
<div id="create-recipe">
<form onSubmit={handleSubmit}>
<input
type="file"
name="image"
accept="image/*"
//style={{ display: 'none' }}
onChange={getFile}
/>
<button type="submit">Post </button>
</form>
</div>
);
};
【问题讨论】:
-
尝试设置一个与上传的文件数据相等的变量,然后将其附加到 formData。
-
我试过了,changeHandler 将钩子显示为未定义,而不仅仅是 formData
-
看看这个链接是否有帮助。 pluralsight.com/guides/…
标签: reactjs