4

我正在使用 Relay Modern 构建一个应用程序,作为我第一次真正涉足 React、Relay 和 GraphQL。

基本情况是,我有一个不需要任何数据的登录表单组件;也就是说,组件渲染了一个表单,并且有一个对应的mutation,但是不需要查询任何东西。

似乎在调用时提供 Relay 样式的查询片段是必要的createFragmentContainer,这反过来又确保this.props.relay不会null在组件的上下文中。

现在,我正在为登录表单使用标准(非中继)React 组件,但结果我无法访问中继环境以将其传递给突变。

我的问题 - 有没有办法本质上传递一个“空”中继片段?还是在这种情况下推荐一些更好的成语?

4

1 回答 1

4

您实际上只是使用一个普通组件,然后创建一个包含突变的突变文件。运行中继编译器为突变创建 graphql 片段,然后在表单提交中调用突变。突变确实需要您的环境。这是中继现代文档:

https://facebook.github.io/relay/docs/mutations.html

您需要将突变的结果存储在某处,然后将身份验证令牌附加到您的下一个请求中,但这应该不难做到。只需 onCompleted 并将结果存储在某处。

您的环境应该是您为突变和查询呈现导入的单独文件。只有 paginationContainer 从 queryRenderer 继承环境。

于 2017-08-22T15:38:02.790 回答