我对JS很陌生,对JS有反应,所以会有一些帮助。
我试图为这个导入的“后遗症”创建一个上下文。我创建了一个上下文文件,并在主目录中添加并包围了
PostHogContext.js
import posthog from "posthog-js";
import React, { useContext, useEffect, useState } from "react";
const PostHogContext = React.createContext();
export function usePostHog(){
return useContext(PostHogContext);
}
export default function PostHogContextProvider({ children }) {
const [initPostHog,setInitPosthog] = useState(posthog)
useEffect(() => {
console.log("Initializing PostHog");
setInitPosthog(posthog.init());
},[initPostHog]);
return(
<PostHogContext.Provider value={initPostHog}>
{children}
</PostHogContext.Provider>
)
}
export { PostHogContext };使用main包围上下文提供程序。
<PostHogContextProvider>
<Main>
</PostHogContextProvider>当我在我的main.js中调用它时
function MainPage(props){
posthog.identify(user.email);
}我得到的错误是
TypeError:无法读取未定义的属性(读取“标识”)
据我所见,它似乎没有发现posthog.identify函数或posthog值为空,但我不知道为什么在提供程序中设置它
发布于 2021-11-05 03:59:25
好吧,我先想清楚了
我的setState有一个错误。
const [initPostHog,setInitPosthog] = useState(posthog)initPostHog和setInitPosthog.所以我的价值没有被正确设定。
https://stackoverflow.com/questions/69847921
复制相似问题