在kotlin react中编写自定义钩子

在kotlin react中编写自定义钩子,kotlin,react-router,react-hooks,Kotlin,React Router,React Hooks,我正试图在kotlin react中写一些类似的东西 export default function useGoogleAnalytics() { const location = useLocation() React.useEffect(() => { analytics.init() }, []) React.useEffect(() => { const currentPath = location.pathname + locatio

我正试图在kotlin react中写一些类似的东西

export default function useGoogleAnalytics() {
  const location = useLocation()
 
  React.useEffect(() => {
    analytics.init()
  }, [])
 
  React.useEffect(() => {
    const currentPath = location.pathname + location.search
    analytics.sendPageview(currentPath)
  }, [location])
}
我可以通过创建一个像这样的空组件来实现它

val useGoogleAnalytics = functionalComponent<RProps> {
    val location = useLocation()
    useEffect {
        console.log("useGoogleAnalytics:useEffect")
        initialize("nunya-business", MyInitializeOptions())
    }
    useEffect {
        console.log("=================== navbar", location.pathname)
        val data  = js("{}")
        data.page = location.pathname
        set(data)
        pageview(path = location.pathname)
    }
}
child(useGoogleAnalytics)
如果我写的是一个常规的旧函数,我会从react router得到一个useLocation问题。我想这是因为我不知道如何完成

React.useEffect(() => {
    ///
  }, [])
召唤

useEffect {
////
}
功能组件外部似乎无法正常工作

非工作尝试是:

fun useGoogleAnalytics(){
    val location = useLocation()
        useEffect {
            console.log("useGoogleAnalytics:useEffect")
            initialize("nunya-business", MyInitializeOptions())
        }
        useEffect {
            console.log("=================== navbar", location.pathname)
            val data  = js("{}")
            data.page = location.pathname
            set(data)
            pageview(path = location.pathname)
        }
}