Redux + Apollo:如何规范和格式化响应数据?

偶极矩

我要以我想要的格式将数据导入组件时遇到了困难。

我的数据来自:

在此处输入图片说明

这对于我的组件而言不是非常有用的格式。我想通过id将数据键入为suc:

assets: {
  "2a4a34sdf3dd": {
    //asset data
  }
}

我的查询是:

const query = gql`{
  assets {
    body
    id
  }
}`

我这样连接我的组件:

export default compose(
  graphql(query),
  connect(mapStateToProps, mapDispatchToProps)
)(AssetList);

对如何格式化我的graphql服务器返回的商店数据有任何见解吗?

斯图拜洛

Apollo有其自己的Redux存储格式,您可以使用graphqlHOC将其映射为组件可消耗的形状它将道具以与查询相同的形状传递给子组件,请参阅主页上的示例:http : //dev.apollodata.com/

但是,您仍然可以通过传递dataIdFromObject函数来控制存储中数据的键例如,如果id在所有对象上都有唯一的字段,则可以简单地使用:

new ApolloClient({
  dataIdFromObject: ({ id }) => id,
  ... other options
});

在此处查看有关此内容的更多文档:http : //dev.apollodata.com/react/cache-updates.html#dataIdFromObject

基本上,虽然Apollo使用Redux作为GraphQL数据的存储,但是存储格式并不意味着组件直接使用。相反,可以将graphqlHOC视为预制的Redux选择器,您可以使用它来将数据有效地输入到UI中。

顺便说一句,如果您想以更注重GraphQL的方式查看商店,则可以使用最近发布的Apollo开发工具:https : //github.com/apollostack/apollo-client-devtools

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章