0

我正在使用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',
   })}
/>

我有以下问题:

  1. 在我的依赖数组中,我应该包括eventanddata吗?我的理解是我不应该,因为这些是函数的输入,因此inputChangeFunc当这些值发生变化时不需要重新创建。

  2. intl.formatMessage我应该将调用包装error在 auseMemo中以防止触发重新渲染 - 像这样:

     const emailMessage = useMemo(
     () =>
         intl.formatMessage({
            id: 'incorrect_email_format',
            defaultMessage: 'Incorrect Email Format',
         }),
     [intl]
    );
    

或者这是不必要的?

4

0 回答 0