使用 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