如果我在 useEffect 挂钩中声明
Linking.addEventListener('url', ({ url }) => {
handleUrl({ url, userDetails });
});
Run Code Online (Sandbox Code Playgroud)
在钩子的清理函数中编写是否足够Linking.removeEventListener('url', handleUrl);,或者我是否必须传递与声明中相同的参数Linking.addEventListener?
小智 7
对于 2022 年的 React Native 的回答,你应该删除这样的事件:
useEffect(() => {
const urlListener = Linking.addEventListener('url', handleUrl);
return () => {
urlListener.remove();
};
}, []);
Run Code Online (Sandbox Code Playgroud)
小智 6
始终首先声明处理程序,不要使用内联函数
const myhandler =({url}) => {
handleUrl({ url, userDetails });
});
Run Code Online (Sandbox Code Playgroud)
然后将其附加到监听器
Linking.addEventListener('url', myhandler);
Run Code Online (Sandbox Code Playgroud)
并像这样删除它
Linking.removeEventListener('url', myhandler);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4556 次 |
| 最近记录: |