Попытка создать HOC с функцией карри, но также должна принимать реквизиты данных GraphQL (реагировать, apollo, GraphQL, перекомпоновывать)

Я использую React, перекомпоновать и apollo GraphQL

Я пытаюсь создать авторизацию пользовательского интерфейса (также будет присутствовать бэкэнд-аутентификация), чтобы позволить пользователям с определенной ролью заходить на страницы, на которые заходили только они. Я ухожу из статьи, которая мне показалась полезной.

В статье он использует статический реквизит. Мне нужно передать реквизиты из запроса данных, который я составляю вместе с моим компонентом авторизации в файле index.js.

В настоящее время мой код выглядит следующим образом:

    import React from 'react'
    import { Redirect } from 'react-router-dom'

    const Authorization = ({ props }) => allowAccess => MyComponent => {

      const { viewer: { role } } =  props.data

      return (
        ( allowAccess.include(role) ) ? <MyComponent /> : <Redirect to="/" />
      )
    }

    export default Authorization

В другом файле я создал переменные, которые содержат роли, которым разрешен доступ к страницам, так же, как и в статье, упомянутой выше:

    export const admin = ['owner', 'admin']
    export const user = ['owner', 'admin', 'user']

Затем я импортирую этот файл и мой Auth в файл, который я определяю мои маршруты. Я делаю то же самое, что и автор в этой статье, и определяю роли, которые будут переносить компонент маршрута, основываясь на том, кому разрешено просматривать страницу:

    const Admin = Authorization(admin)
    const User = Authorization(user)

Вот где мне выкидывают ошибку

Я думаю, что это происходит, когда я пытаюсь найти подпорку graphql в массиве ролей пользователей, которые я передаю, а не в Авторизации.

0 ответов

Другие вопросы по тегам