Ant Designを使ってみて、Formコンポーネントで一瞬つまったのでめも
概要
- AntDesignは、Reactのプロジェクトでデザインを楽にしてくれるやつ
- Formの基本的な使い方
- つまったところ & 解決法
Formの使い方
<Form>
の中に<Form.Item
>をネストして、<Form.Item>
の中にInputとかSelectとかを入れていく
最低限のFormの例
// 省略
import { Form, Input, Button } from 'antd';
const FormComponent = () => {
// フォーム送信の処理
const onFinish = values => console.log(values)
return (
// 表示されるフォーム
<Form onFinish={onFinish}>
<Form.Item name="user" label="ユーザ名">
<Input />
</Form.Item>
<Form.Item name="password" label="パスワード">
<Input.Password />
</Form.Item>
<Form.Item name="password" label="パスワード">
<Button htmlType="submit">
送信
</Button>
</Form.Item>
</Form>
)
}
export default FormComponent
つまったとこ
onFinish
を実行すると、consoleに{}
が表示された i.e. values
が空だった
→解決法: Form.Item
にname
を設定する
最後のhtmlType="submit
を持つ<Button>
を押すと、onFinish
が実行されるのですが、最初にFormを書いてたときに、Form.Itemのname
を書いてませんでした
これが原因で、onFinish
の引数values
に値が渡ってませんでした
nameを入れたら、onFinishの結果が
{ name: value }
にちゃんとなりました