フックを使用して次の関数を作成し、次のようuseCallback
にに渡してinput
います。
const inputChangeFunc = useCallback(
() => (event, data) =>
updateUserEmail(event.target.value.trim(), itemId),
[updateUserEmail, itemId]
);
<input
onChange={inputChangeFunc}
defaultValue={userEmail || ''}
type="email"
error={intl.formatMessage({
id: 'incorrect_email_format',
defaultMessage: 'Incorrect Email Format',
})}
/>
次の質問があります。
event
依存配列にandを含める必要がありdata
ますか? これらは関数への入力であるため、inputChangeFunc
これらの値が変更されたときに再作成する必要はありません。intl.formatMessage
呼び出しをerror
aでラップして、再useMemo
レンダリングがトリガーされないようにする必要があります-次のようなものです:const emailMessage = useMemo( () => intl.formatMessage({ id: 'incorrect_email_format', defaultMessage: 'Incorrect Email Format', }), [intl] );
またはこれは不要でしょうか?