在React/Redux中允许将图片上传到Imgur,可以通过以下步骤实现:
以下是一个简单的示例代码,演示了如何在React/Redux中允许将图片上传到Imgur:
import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
import Dropzone from 'react-dropzone';
import axios from 'axios';
const ImageUploader = () => {
const dispatch = useDispatch();
const [uploadedImageUrl, setUploadedImageUrl] = useState('');
const handleImageUpload = async (files) => {
const file = files[0];
const formData = new FormData();
formData.append('image', file);
try {
const response = await axios.post('https://api.imgur.com/3/image', formData, {
headers: {
Authorization: 'Client-ID YOUR_CLIENT_ID', // 替换为你的Imgur API Client ID
},
});
const imageUrl = response.data.data.link;
setUploadedImageUrl(imageUrl);
dispatch({ type: 'SET_IMAGE_URL', payload: imageUrl }); // 更新Redux状态
} catch (error) {
console.error('Error uploading image:', error);
}
};
return (
<div>
<Dropzone onDrop={handleImageUpload}>
{({ getRootProps, getInputProps }) => (
<div {...getRootProps()}>
<input {...getInputProps()} />
<p>将图片文件拖放到此处,或点击选择文件</p>
</div>
)}
</Dropzone>
{uploadedImageUrl && <img src={uploadedImageUrl} alt="Uploaded" />}
</div>
);
};
export default ImageUploader;
在上述示例中,需要将YOUR_CLIENT_ID
替换为你在Imgur上注册应用程序时获得的Client ID。此外,还需要在Redux中创建一个名为SET_IMAGE_URL
的action来更新图片URL的状态。
这是一个简单的示例,你可以根据自己的需求进行修改和扩展。希望对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云