Это хороший подход для обмена пользовательскими данными между компонентами? - PullRequest
0 голосов
/ 14 января 2019

У меня есть useUserData ловушка для получения пользовательских данных с сервера

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 сApollo , чтобы каждый компонент мог использовать ловушку. Это хороший подход?

...