Есть ли способ использовать Relay без GraphQL?

Я пробую Relay в своем приложении React, и по умолчанию он использует GraphQL. Выглядит это так (Score — это какой-то компонент React.js):

Score = Relay.createContainer(Score, {
    fragments: {
        score: () => Relay.QL`
            fragment on Score {
                initials,
                score,
            }
        `,
    },
});

Вопрос в следующем: можно ли использовать пользовательские функции API для возврата данных во фрагменты? Как это:

Score = Relay.createContainer(Score, {
    fragments: {
        score: myCustomFunction(), // It will return a dataset.
    },
});

person Phil Filippak    schedule 20.10.2015    source источник


Ответы (1)


Нет, не сейчас. Поддержка дополнения схемы сервера «локальными» данными обсуждается в этом выпуске GitHub.

А пока у вас есть два варианта:

  • Найдите вычисление оценки на сервере GraphQL и получите к нему доступ через схему, как и любое другое поле (обратите внимание, что поля в схеме могут быть результатом произвольных вычислений, поэтому вы можете создавать «вычисляемые поля» и не ограничиваться ванильными данными). - получение из вторичного магазина).
  • Найдите данные на клиенте и получите к ним доступ через сторонний канал помимо GraphQL; например, вы можете поместить его в хранилище Flux или какой-либо другой дополнительный модуль.
person wincent    schedule 20.10.2015
comment
Спасибо за ваш ответ! Я подумал, что здесь слишком много сложности и избыточной гибкости, поэтому я выбрал другой путь: самостоятельно создать простую обертку над компонентами React. - person Phil Filippak; 21.10.2015