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

回答編集履歴

1

バリデーションされないロジックについて追記

2020/08/05 05:59

投稿

anozon
anozon

スコア667

answer CHANGED
@@ -60,4 +60,25 @@
60
60
  }
61
61
 
62
62
  export default Form;
63
- ```
63
+ ```
64
+
65
+ 追記
66
+
67
+ eventハンドラ関数の中を呼ばれたタイミングでは変数が更新されていないため1回遅れています。
68
+
69
+ ```
70
+ const newPass = e.target.value
71
+ if (str.test(newPass) === false || newPass.length < 7) {
72
+ ```
73
+ とするか
74
+
75
+ または
76
+
77
+ ```
78
+ useEffect(() => {
79
+ if (str.test(pass) === false || pass.length < 7) {
80
+ // ...
81
+ }, [pass])
82
+ ```
83
+
84
+ というふうに useEffect 内でバリデーションするかに変えてみてください。