【问题标题】:Getting error when using ra-graphql-simple with react-admin将 ra-graphql-simple 与 react-admin 一起使用时出错
【发布时间】:2019-02-04 23:21:45
【问题描述】:

我的 react-admin imp 似乎能够连接到我使用 graphql 插件启动并配置的 Strapi api,但我收到一条错误消息,说我的客户基本上不知道我的其中一个 Strapi 集合存在:

未知资源“产品”。确保它已在您的服务器端架构上声明。已知资源是

这是瞬间出现的完整信息。没有实际的资源清单。

我的 App.js 如下:

class App extends Component {
  constructor() {
    super();
    this.state = { dataProvider: null };
  }
  componentDidMount() {
    buildGraphQLProvider({
      clientOptions: {
        uri: 'http://localhost:1337/graphql',
      },
    }).then(dataProvider => {
      this.setState({ dataProvider })
    }).catch((err) => {
      console.error(err);
    });
  }
  render() {
    const { dataProvider } = this.state;
    if (!dataProvider) {
      return <div>Loading</div>;
    }
    return (
      <Admin
        authProvider={authProvider}
        dataProvider={dataProvider}
        i18nProvider={i18nProvider}
        title="GridPlus"
        locale="en"
        customRoutes={[
            <Route
                exact
                path="/custom"
                component={CustomRouteNoLayout}
                noLayout
            />,
            <Route exact path="/custom2" component={CustomRouteLayout} />,
        ]}>
        <Resource name="products" {...products} />
    </Admin>
    );
  }
}

export default App;

任何想法为什么管理员客户端无法看到我的产品集合?

谢谢。

【问题讨论】:

    标签: apollo apollo-client react-admin


    【解决方案1】:

    ra-data-graphql-simple 在启动时向您的 graphql 后端发送一个自省查询,收集与它所理解的 gql 方言匹配的所有可能资源。

    方言是一种为每个资源命名查询和突变的方法。对于要检测的资源,您的架构必须具有在 documentation 中定义的预期形状。

    大多数时候,您必须使用ra-data-graphql 实现自己的方言。

    【讨论】:

    • 我没有嫁给strapi。对我来说,设置 graphql api 以便我可以将它与 react-admin 一起使用的最简单方法是什么?实现一个方言解析器对我来说是不是相当容易,还是我应该建立一个新的 api?
    • 顺便说一句,这里是对 react-admin 的自省请求的响应:gist.github.com/mateodelnorte/c01af95accf027c6fd1ee55f255a0081
    • 为strapi写一个可重用的方言可能会受到其他人的赞赏;)你可以检查ra-data-graphql-simple是如何实现的。
    • 读取 gql 查询结果很难...您有 Strapi 为您的资源生成的架构吗?
    • 还有另一种方法可以在您的 Strapi API 之上使用 react-admin,但它需要您自己编写所有 gql 查询。如果你有兴趣,我会写一篇关于它的博客文章。只是 ping 我 :)
    猜你喜欢
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 2020-01-17
    • 2020-11-19
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多