Я запускаю React с Ant Design и получаю эту ошибку:
Экземпляр, созданный с помощью 'useForm', не связан ни с одним элементом Form. Забыл передать пропущенную форму?
Код:
// .../services/index.js
export { default as registerService } from './registerService'
// .../services/registerService.js
import axios from '../../../configs/api.service'
const registerService = (form) => {
return {
validatePasswordAndConfirmPassword: async (rule, value) => {
if (value && value !== form.getFieldValue(['user', 'confirmPassword'])) {
throw new Error('Password and Confirm Password must be same')
}
},
register: async user => {
const { data } = await axios.post('/users', user)
const { _id, username } = data
console.log('Register Success:', `User ${username} is created, You get ID: ${_id}`)
return data
},
}
}
export default registerService
// Register Component
import React from 'react'
import { Button, Form, Input } from 'antd'
import { registerService } from '../../services/'
const Register = () => {
const [form] = Form.useForm()
const service = registerService(form)
const onFinish = async ({ user }) => {
try {
await service.register(user)
} catch (err) {
console.error('Register Failed:', err.response)
}
}
const onFinishFailed = errorInfo => {
console.error('Failed:', errorInfo)
}
return (
<>
<Form {...layout}
name="Register"
onFinish={onFinish}
onFinishFailed={onFinishFailed}
validateMessages={validateMessages}
>
<Form.Item
name={['user', 'username']}
label="Username"
rules={[
{ required: true },
]}
>
<Input />
</Form.Item>
<Form.Item
name={['user', 'password']}
label="Password"
rules={[
{ required: true },
{ validator: service.validatePasswordAndConfirmPassword },
]}
>
<Input.Password />
</Form.Item>
<Form.Item
name={['user', 'confirmPassword']}
label="Confirm Password"
rules={[
{ required: true },
{/*{ validator: service.validatePasswordAndConfirmPassword },*/}
]}
>
<Input.Password />
</Form.Item>
<Form.Item {...tailLayout}>
<Button type="primary" htmlType="submit">Submit</Button>
</Form.Item>
</Form>
</>
)
}
export default Register
Как я могу исправить эту ошибку?