提取API无法加载webpack:// ...错误

时间:2019-02-06 02:55:55

标签: reactjs graphql react-apollo apollo-client next.js

我正在尝试学习有关Apollo Client和GraphQL的一些新技巧,但遇到一个错误,无法弄清是什么原因引起的。我正在使用的堆栈是GraphQL和ApolloClient。错误是

Fetch API cannot load webpack://%5Bname%5D_%5Bchunkhash%5D/./node_modules/react-dom/cjs/react-dom.development.js?. URL scheme must be "http" or "https" for CORS request.

我检查了我的CORS设置,可以毫无问题地进行其他查询。该特定查询出现错误:

query SINGLE_STORE_QUERY($id: ID!) {
    store(where: { id: $id }) {
      id
      name
      description
      image
      address
      lat
      lng
      reviews {
        user {
          name
        }
        text
        rating
      }
    }
  }

NextJS组件中的我的Apollo查询是:

    <Query
        query={SINGLE_STORE_QUERY}
        variables={{ id: this.props.id }}
        errorPolicy="all"
      >
        {({ data: { store }, error, loading }) => {
          if (error) return <Error error={error} />;
          if (loading) return <p>Loading...</p>;

          console.log(store);
          return (
            <div>
              <StoreHero>
                <SingleTitle>{store.name}</SingleTitle>
              </StoreHero>

              <Container>
                <p className="location">{store.address}</p>
                <p className="description">{store.description}</p>
                {store.reviews.map((review, ind) => (
                  <Review review={review} key={ind} />
                ))}
                <ReviewForm id={this.props.id} />
              </Container>
            </div>
          );
        }}
      </Query>

有趣的是,当我从查询中删除reviews时,我没有收到错误。但是,在GraphQL操场上它可以正常工作,所以我知道数据在那里。另外,如果刷新页面,则页面会正确加载。错误只会在页面的第一次加载时出现。

谁能指出正确的方向,以更好地构建此查询?我知道我已经接近了,但是我缺少一些小东西。谢谢!

1 个答案:

答案 0 :(得分:2)

我遇到了类似的情况,但有相同的错误,并且发现,基本上该错误与GraphQL或Apollo无关。这是一个react-error-overlay错误,基本上表示“出现错误,显示您的错误”或“无法显示您的错误”。

关于您的情况:可能是在Review中,您试图访问未定义属性上的某些内容,例如review.text.length,并且有些评论没有这个财产?