Передача данных с использованием фрагмента graphql - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь передать данные от одного компонента другому.Я надеялся, что мой код работает, потому что логика имела для меня смысл, но это не так :(

Вот мой код:

Из родительского файла, который находится в папке компонентов, я написалФрагмент graphql:

export const testQuery = graphql`
  fragment testQuery on RootQueryType {
    allThePics {
      edges {
        node {
          testPicture {
            responsiveResolution {
              src
            }
          }
        }
      }
    }
  }
`;

, а затем из другого js-файла я назвал это так:

export const callingTestQuery = graphql`
  query callingTestQuery {
    ...testQuery
  }
`;

Я проверил это graphql с помощью localhost: 0000 / ___ graphql, и похожедает мне некоторые данные, что означает, что данные определены.

Однако, когда я пытаюсь использовать данные,

const Image = ({ data }) => {
  console.log(data);
  return (
    <div>
      {data.allThePics.edges.map(edge => {
        <PictureList node={edge.node} />;
      })}
    </div>
  );
};

он продолжает выдавать мне ошибку, говоря, что данные не определены:

Uncaught TypeError: Невозможно прочитать свойство 'allThePics' из неопределенного

Я не уверен, как заставить его работать ... Справка:)

1 Ответ

0 голосов
/ 30 августа 2018

Вы пытались сделать data && data.allThePics...?Если это работает, то это потому, что во время загрузки данные еще не существуют.

Другой способ, которым вы можете попробовать, - if(loading) return null

. Еще один пример загрузки можно найти здесь.https://www.apollographql.com/docs/angular/basics/queries.html#basics

...