ice
ice copied to clipboard
[QUESTION]vite下@ahooksjs/use-url-state无法正常使用
背景
import useUrlState from '@ahooksjs/use-url-state';
...
console.log(useUrlState());
...
报错
hooks.js:29 Uncaught TypeError: Cannot read properties of undefined (reading 'location')
at useLocation (hooks.js:29)
at es_default (index.js:56)
at Home (index.tsx:38)
at renderWithHooks (react-dom.development.js:14985)
at mountIndeterminateComponent (react-dom.development.js:17811)
at beginWork (react-dom.development.js:19049)
at HTMLUnknownElement.callCallback2 (react-dom.development.js:3945)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
at invokeGuardedCallback (react-dom.development.js:4056)
at beginWork$1 (react-dom.development.js:23964)
在webpack下正常
@xmsz 并不能简单的复现,请提供下使用方式的 demo
我发现我问题描述错了,应该是 pnpm i --shamefully-hoist
不行,和vite无关
https://github.com/xmsz/demo-20211029-1/tree/master
pnpm 下的确有改问题,问题原因是 ice 内置的 router api 均从 react-router-dom 中导出,而 @ahooksjs/use-url-state 则是从 react-router 中导出,在预编译时,同版本 react-router 依赖引用多处:
react-router 引用依赖:
react-router-dom 引用依赖:
引用多个版本导致了报错,临时可以先将源码中的 react-router 修改为 react-router-dom 保证统一引用,依赖关系,我们再梳理修复下
过了两年这个问题仍然存在😴
2024了这个问题依然存在