ReactJS/Graphql: Как экспортировать запрос для использования в другом компоненте?

Для следующего этапа этого проекта мне нужно экспортировать запрос, чтобы я мог вызвать его из другого компонента, используя переменные запроса. Все примеры, которые я видел, не используют ни 'query =', поэтому я теряюсь в синтаксической инструкции для экспорта запроса. Любая помощь будет оценена.

const UserList = (props) => (
  <Query
    query={gql` 
      query action($timestamp: Float! ){
        action(timestamp: $timestamp){
        action
        timestamp
        object{
          filename
        }
      }
    }
`}

  >
    {({ loading, error, data }) => {
      if (loading) return <p>Loading...</p>;
      if (error) return <p>Error</p>;

          return (    
            <Item.Group divided>
              {data.action.map(action =>
                <div>
                  <ul>
                  <li>{action.action}</li>
                  <li>{action.timestamp}</li>
                  <ul>
                  {action.object.map( (obj) => {
                    return (<li>{obj.filename}</li>)
                  })}
                  </ul>
                  </ul>
                </div>
              )}
              </Item.Group>
            );
        }}
  </Query>
);

export default (UserList);

1 ответ

export const n6dynQuery = gql`
      query action($timestamp: Float! ){
        action(timestamp: $timestamp){
        action
        timestamp
        object{
          filename
        }
      }
    }`

использовать его в компоненте как:

import {n6dynQuery} from "filepath"
const UserList = (props) => (
  <Query query={n6dynQuery} >
    {({ loading, error, data }) => {
      if (loading) return <p>Loading...</p>;
      if (error) return <p>Error</p>;

          return (

            <Item.Group divided>
              {data.action.map(action =>
                <div>
                  <ul>
                  <li>{action.action}</li>
                  <li>{action.timestamp}</li>
                  <ul>
                  {action.object.map( (obj) => {
                    return (<li>{obj.filename}</li>)
                  })}
                  </ul>
                  </ul>
                </div>
              )}

              </Item.Group>
            );
        }}
  </Query>
);

export default (UserList);
Другие вопросы по тегам