GraphQLError:语法错误:无法解析意外的字符“ \ u00A0”

时间:2018-07-29 10:42:13

标签: reactjs graphql react-apollo graphql-js

使用gql(来自“ graphql-tag”)进行一些查询/更改/订阅时,出现了一些错误。

有人可以解决此错误吗? 这是我的代码:

import React from 'react';
import { Mutation } from 'react-apollo';
import MUTATION from './query.js';
import gql from 'graphql-tag';

const ADD_POST_MUTATION = gql`
  mutation addPost($content: String!, $author: String!) {
    addPost(content: $content, author: $author) {
      content
      author
    }
  }
`;

export default class Tool extends React.Component {
  state = {
    content: '',
    author: localStorage.getItem('user') || ''
  };

  handleSubmit = (e, mutation) => {
    console.log(mutation);
    e.preventDefault();
    mutation({ variables: { content: this.state.content, author: this.state.author }})
      .then(res => console.log(res))
      .catch(e => console.log(e));
  }

  render() {
    return (
      <Mutation mutation={MUTATION}>
        {(addPost, { data }) => (
          <div>
            <div>Poster un commentaire</div>
            <form onSubmit={e => this.handleSubmit(e, addPost)}>
              <textarea onChange={e => this.setState({ content: e.target.value })}></textarea>
              <button type='submit'>Poster</button>
            </form>
          </div>
        )}
      </Mutation>
    );
  }
};

此查询再次发生错误

const FETCH_POST_QUERY = gql`
  query {
    getPost {
      id
      content
      author
    }
  }
`;

我得到了这个错误:

Error image (click to see)

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

复制您的GQL代码,并使用另一个编辑器(例如TextEdit)复制并粘贴为纯文本,然后复制纯文本并粘贴回VSCode。

答案 1 :(得分:0)

已解决!

graphql-tag中存在问题,我必须重写以确保没有不间断的空格!

答案 2 :(得分:0)

VSCode 用户可以下载一个名为 “非破坏空间荧光笔” 的插件,它将以红色突出显示所有 NBSP,以便于查找。从您的 gql 查询中删除它们,错误就会消失。我相信其他编辑器也有类似的插件。