0

我正在为我的应用程序使用 React-typescript。对于我的应用程序,我使用了 useTranslation。useTranslation 在功能组件中运行良好。我创建了经过验证的自定义错误处理程序,它位于功能组件之外。当我使用useTranslation逻辑时,它确实有效并向我显示:预期参数声明。我不知道我做错了什么。

const validate = (i: IFormStateValues<IData>, t: any) => {
  const errors: IFormStateErrors<IData> = {};

  if (!i?.name) {
    errors.name = {t(`notValidLengthError`)}; //ERROR:Parameter declaration expected
  }
  return errors;
};
4

1 回答 1

0

解决它的最简单方法是传播t


const validate = (i: IFormStateValues<IData>, t: any) => {
  const errors: IFormStateErrors<IData> = {};

  if (!i?.name) {
    errors.name = {...t(`notValidLengthError`)}; //ERROR:Parameter declaration expected
  }
  return errors;
};

但是广告我不知道 t 是什么,我会告诉你发生了什么,打字稿和我有同样的问题

错误的属性名称由一个没有任何属性的对象初始化,我假设 t 是一个返回值的函数,但 errors.name 是一个空对象。TS 不喜欢那样。将值设置为没有属性的空对象在哪里设置新的调用值。

于 2020-05-25T11:08:02.867 回答