Open
Description
复现repo: https://github.com/freewind-demos/typescript-react-hox-mix-stores-demo
useStore1.ts:
export const [useStore1, Store1Provider] = createStore(() => {
const [user, setUser] = useState<string>();
const {version} = useStore2();
return {user, setUser: (user: string) => setUser(`${user}.${version}`)}
});
useStore2.ts
export const [useStore2, Store2Provider] = createStore(() => {
const [version, setVersion] = useState(0)
return {version, setVersion}
});
组件:
export const Hello: FC<Props> = ({}) => {
return <Store1Provider>
<Store2Provider>
<Version/>
<User/>
</Store2Provider>
</Store1Provider>;
}
运行报错:
useStore1.ts:9 Uncaught TypeError: Cannot destructure property 'version' of 'useStore2(...)' as it is undefined.
at useStore1.ts:9:5
at hox.js?v=d75d37a9:226:22
at renderWithHooks (react-dom.js?v=d75d37a9:11128:26)
at updateFunctionComponent (react-dom.js?v=d75d37a9:12953:28)
at updateSimpleMemoComponent (react-dom.js?v=d75d37a9:12853:18)
at updateMemoComponent (react-dom.js?v=d75d37a9:12784:22)
at beginWork (react-dom.js?v=d75d37a9:14092:22)
at HTMLUnknownElement.callCallback2 (react-dom.js?v=d75d37a9:3738:22)
at Object.invokeGuardedCallbackDev (react-dom.js?v=d75d37a9:3763:24)
at invokeGuardedCallback (react-dom.js?v=d75d37a9:3797:39)
如果useStore1与useStore2都是createGlobalStore
,则无错。
看了一下源码tests,里面没有这里场景的测试
Metadata
Metadata
Assignees
Labels
No labels
Activity