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