Linking.removeEventListener required params

Viewed 1723

If I declared in a useEffect hook

Linking.addEventListener('url', ({ url }) => {
  handleUrl({ url, userDetails });
});

In the cleanup function of the hook is it enough to write Linking.removeEventListener('url', handleUrl); or do I have to pass the same params as in the declared Linking.addEventListener?

2 Answers

Always declare the handler first, do not use inline function

const myhandler =({url}) => {
  handleUrl({ url, userDetails });
});

Then attach it to listener

Linking.addEventListener('url', myhandler);

And remove it like

Linking.removeEventListener('url', myhandler);

In the documentation for removeEventListener() only the type and handler are necessary: removeEventListener(type, handler);

Related