问题描述
我正在尝试使用 rectjs 将带有图像的数据发布到服务器,下面的打字稿是我的模型
export interface Client{
fullname:string;
email:string;
mobile: string;
regionId: string;
photo?:Blob;
alternateNumber?: string;
address?: string;
}
我在添加组件中使用上述模型
interface Props {
clients? : Client
}
export default function AddClient({clients}: Props) {
const {regionStore} = useStore()
const initialState = clients ?? {
fullname:'',email:'',mobile: '',regionId: '',alternateNumber: '',address: '',photo: null
}
我不知道将 blob 的初始值传递为空但是当我初始化 null 时它抛出错误
类型 'null' 不能分配给类型 'Blob |未定义'
const [client,setClient] = useState(initialState)
function handleSubmit(client: Client){
let formData = new FormData();
formData.append('fullname',client.fullname)
formData.append('email',client.email)
formData.append('mobile',client.mobile)
formData.append('regionId',client.regionId)
formData.append('photo',client.photo )
formData.forEach((value,key) => {
console.log("Values submitted",key+" " +value)
})
}
但是当我尝试将其附加到 formdata 时,我收到此错误
'Blob 类型的参数 | undefined' 不能分配给参数 输入'字符串|斑点'。类型“未定义”不可分配给类型 '字符串 | Blob'.ts(2345)
这是我使用 formik 和 yup 进行验证的表单
<Formik validationSchema={ClientValidation} initialValues={client} onSubmit={handleSubmit}>
{({ handleSubmit,isValid,isSubmitting,dirty}) =>(
<Form className='ui form' onSubmit={handleSubmit} autoComplete='off'>
<Form.Group widths='equal'>
<MyTextInput name="fullname" label="Full Name" placeholder='Full Name'/>
<MyTextInput name="email" label="Email Address" placeholder='Email Address'/>
</Form.Group>
<Form.Group widths='equal'>
<MyTextInput name="mobile" label="Mobile Number" placeholder='Mobile Number'/>
<MySelectInput placeholder="regionId" label="Select Region" name="regionId" options={region}/>
</Form.Group>
<Form.Group widths='equal'>
<MyTextInput name="alternateNumber" label="Alternate Number" placeholder='Alternate Number'/>
<MyTextInput name="photo" label="Upload Images" type='file' placeholder='Upload Image'/>
<MyTextArea rows={2} placeholder="address" label="Address" name='address' />
</Form.Group>
{/* <PhotoUploadWidget/> */}
<Button
disabled={isSubmitting || !isValid || !dirty}
size='large' positive type='submit' content='Create'/>
</Form>
)}
</Formik>
我的 api 工作正常,只是需要将此文件附加到 formdata 并使用 axios 推送它...
对于使用 asp.net core webapi 的 API,当我使用 swagger 进行测试时,它工作正常
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)