やりたかったこと
ユーザーがフォームに入力をして、フォーカスが外れたタイミングで stateを更新するってのをhooksで書こうとしてました
cosnt [state1, setState1] = useState<string>('');
function _onBlurHandler(event: SyntheticFocusEvent) {
setState1(event.targe.value);
}
<input
...
...
onBlur={_onBlurHandler}
)}
/>
だったんですがflowで型チェックしたら怒られちゃいました
Cannot get event.target.value because property value is missing in EventTarget
Githubを見に行こう
このissueで結構話されてました↓
property value not found in EventTarget · Issue #2099 · facebook/flow · GitHub
I don't see value declared in EventTarget.
まあこれにつきますよね
SyntheticFocusEvent (issueではSyntheticKeyboardEvent)ではtargetというpropertyはdefaultではないのでEventTargetを宣言してあげる必要があります
targetがHTMLInputElementであることを宣言します
cosnt [state1, setState1] = useState<string>('');
function _onBlurHandler(event: SyntheticFocusEvent) {
if (event.target.value instanseof HTMLInputElement) {
setState1(event.targe.value);
}
}
<input
...
...
onBlur={_onBlurHandler}
)}
/>
これでエラーは消えました!めでたい!!