代码之家  ›  专栏  ›  技术社区  ›  karolis2017

这是在组件之间共享用户数据的好方法吗?

  •  0
  • karolis2017  · 技术社区  · 7 年前

    我有 使用用户数据 用于从服务器获取用户数据的钩子

    function App({ client }) {
      const data = useUserData({ client })
      console.log(data)
      // logs {username: 'foo', email: 'foo@bar.com'}
      return <AppLayout feed={<Feed />} />
    }
    
    export default withApollo(App)
    

    钩子本身是这样的:

    function useUserData({ client }) {
      const [state, setState] = useState(null)
    
      const getUserData = async () => {
        const {
          data: { me }
        } = await client.query({
          query: GET_ME
        })
        const { username, email } = me
        setState(me)
      }
    
      useEffect(() => {
        getUserData()
      }, [])
    
      return state
    }
    export default useUserData
    

    我知道我必须使用HOC 阿波罗 使每个部件都能使用挂钩。这是一个好方法吗?

    0 回复  |  直到 7 年前