質問するログイン新規登録

質問編集履歴

2

ごじ

2025/08/02 08:26

投稿

user202102
user202102

スコア12

title CHANGED
File without changes
body CHANGED
@@ -77,6 +77,8 @@
77
77
  ],
78
78
  };
79
79
 
80
+ ```
81
+
80
82
  ### 補足
81
83
  useFormでonSubmitを指定するとバリデーション後に実行される関数を指定できるとのことで、以下まで書いてみました。こちらで値設定、エラーハンドリングができる方法があればこちらでの解決法をご教示ください。
82
84
 

1

修正案の補足

2025/08/02 08:25

投稿

user202102
user202102

スコア12

title CHANGED
File without changes
body CHANGED
@@ -78,4 +78,28 @@
78
78
  };
79
79
 
80
80
  ### 補足
81
+ useFormでonSubmitを指定するとバリデーション後に実行される関数を指定できるとのことで、以下まで書いてみました。こちらで値設定、エラーハンドリングができる方法があればこちらでの解決法をご教示ください。
82
+
83
+ ```tsx
84
+ const [form, fields] = useForm({
85
+ lastResult: actionData?.lastResult,
86
+ onValidate({ formData }) {
87
+ return parseWithZod(formData, { schema: UserSchema });
88
+ },
89
+ shouldValidate: "onBlur",
90
+ shouldRevalidate: "onBlur",
91
+ onSubmit: afterDoing,
81
- 特になし
92
+ });
93
+
94
+ async function afterDoing() {
95
+ if (typeof window !== "undefined" && (window as any)._?.shuffle) {
96
+ const shuffled = (window as any)._?.shuffle([1, 2, 3, 4]);
97
+ setResult(`シャッフル結果: ${shuffled.join(", ")}`);
98
+ } else {
99
+ setResult("lodash がまだロードされていないか、関数が見つかりません");
100
+ }
101
+
102
+ // TODO:ここで値セットできるか?
103
+ // TODO:エラー対応もしたい、エラー設定方法は?
104
+ };
105
+ ```