4

I am using react-cookie in a react application with typescript but coming into the error

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

when using setCookie as

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

the error is on the setCookie line.

How can I fix this error? Reading on this issue in other questions hasn't helped but if you know of a resource that can put me in the right direction, that would be great.

1 Answer 1

5

Following the react-cookie readme:

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

setCookie is the second item of the returned array.

In your code you get the first item, cookies, which you rename to setCookie.

The fix:

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

Be carefull with array destructuring, it's quite sexy but may be sometimes misleading.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.