ice icon indicating copy to clipboard operation
ice copied to clipboard

[QUESTION]vite下@ahooksjs/use-url-state无法正常使用

Open xmsz opened this issue 3 years ago • 5 comments

背景

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)

image

在webpack下正常

xmsz avatar Oct 29 '21 01:10 xmsz

image image @xmsz 并不能简单的复现,请提供下使用方式的 demo

ClarkXia avatar Oct 29 '21 06:10 ClarkXia

我发现我问题描述错了,应该是 pnpm i --shamefully-hoist不行,和vite无关

https://github.com/xmsz/demo-20211029-1/tree/master

xmsz avatar Oct 29 '21 09:10 xmsz

pnpm 下的确有改问题,问题原因是 ice 内置的 router api 均从 react-router-dom 中导出,而 @ahooksjs/use-url-state 则是从 react-router 中导出,在预编译时,同版本 react-router 依赖引用多处:

react-router 引用依赖: image

react-router-dom 引用依赖: image

引用多个版本导致了报错,临时可以先将源码中的 react-router 修改为 react-router-dom 保证统一引用,依赖关系,我们再梳理修复下

ClarkXia avatar Nov 01 '21 04:11 ClarkXia

过了两年这个问题仍然存在😴

Dowgen avatar Dec 06 '23 03:12 Dowgen

2024了这个问题依然存在

avivadepp avatar Feb 28 '24 03:02 avivadepp