Warning: count(): Parameter must be an array or an object that implements Countable in /home/xs638785/agile-software.site/public_html/wp-content/plugins/rich-table-of-content/functions.php on line 490
Yup
Yupはバリデーションのためのライブラリです。
各フォーム項目ごとに異なるバリデーションを定義していきます。
宣言的で大変わかりやすいバリデーションが可能です。
任意のエラーメッセージを扱う
import * as yup from 'yup';
const schema = yup.object().shape({
name: yup.string().required('名前は必須項目です'),
age: yup.number('年齢は数値で入力してください') // (1)
.required('年齢は必須項目です')
.positive('正の数を指定してください')
.integer('整数で指定してください'),
email: yup.string().email('メールアドレスの形式が不正です'),
});
schema
.validate({
name: 'Taro',
age: 'hi', // 数値型ではなく文字列型を渡している
})
.catch(function (err) {
console.log(err.errors); // => ['年齢は数値で入力してください'] // (2)
});
@hookform/resolvers
yupResolverをimportして、yupで作成したバリデーションとreact-hook-formを接続します。
zod
スキーマを定義し、バリデーションの設定を行うことができます。
また定義したスキーマからTypeScriptの型を生成することができます。