开发者问题收集

使用 react-cookie setCookie 的 Typescript 错误 - 类型'{[name:string]:any;}'没有兼容的调用签名.ts(2349)

2019-08-23
2374

我在带有 typescript 的 React 应用程序中使用 react-cookie,但出现错误

Cannot invoke an expression whose type lacks a call signature. Type '{ [name: string]: any; }' has no compatible call signatures.ts(2349)

当使用 setCookie 作为

const [setCookie] = useCookies(['example']);
const onLanguageSelect = (data: any) => {
  setCookie('example', data.value, { path: '/' });
};

时,错误发生在 setCookie 行上。

我该如何修复此错误?阅读其他问题中关于此问题的内容并没有帮助,但如果您知道可以为我指明正确方向的资源,那就太好了。

1个回答

遵循 react-cookie 自述文件:

const [cookies, setCookie, removeCookie] = useCookies(['cookie-name']);

setCookie 是返回数组的 第二 项。

在您的代码中,您将获得第一项 cookies ,将其重命名为 setCookie

修复:

const setCookie = useCookies(['example'])[1];

小心使用数组解构,它非常性感,但有时可能会产生误导。

Richard Haddad
2019-08-23