- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将 Flux 应用程序转换为 Relay.js,但遇到了一些问题。我似乎无法让组件片段组合正常工作。正确的数据从服务器返回,但由于某种原因,组合数据永远不会传回父组件的 props。
到目前为止,这是我的代码:
LibraryLongDescription.js
import React, {Component, PropTypes} from 'react';
import Relay from 'react-relay';
import DocumentTitle from 'react-document-title';
import Address from '../components/Address';
import Orders from '../pages/Orders';
export default class LibraryLongDescription extends Component {
constructor(props)
{
super(props);
this.state = {
library: {}
};
console.log(props);
if(props.library){
this.state.library = props.library;
}
}
render()
{
return (
<DocumentTitle title="Libraries">
<div>
{this.state.library.name}
<div className="row">
<Address type={"Address"} address={this.state.library.address} />
</div>
<div className="top-space-60">
<h3>Orders</h3>
<Orders />
</div>
</div>
</DocumentTitle>
);
}
}
export default Relay.createContainer(LibraryLongDescription, {
fragments: {
library: () => Relay.QL`fragment on Library {
id,
name,
address{
id
sanNumber,
addressLine1,
addressLine2,
city,
state,
zip
},
${Orders.getFragment('orders')}
}`,
}
});
Orders.js
import React, {Component, PropTypes} from 'react';
import Relay from 'react-relay';
class Orders extends Component {
constructor(props)
{
super(props);
console.log(props);
}
render()
{
return (<h1>This is where the order goes</h1>);
}
}
export default Relay.createContainer(Orders, {
fragments: {
orders: () => Relay.QL`fragment on Library {
orders(first: 10){
edges{
node{
id,
message_number,
order_total
}
}
pageInfo{
hasPreviousPage,
hasNextPage
}
}
}`
}
});
这不能正确解析。当我在 LibraryLongDescription.js 中控制日志 Prop 时,我从该查询中获取了所有值,但我没有从 Orders 片段中获取任何内容。当我查看通过网络传输的内容时,我会以这种形式获取数据:
{
"data":{
"library":{
"id":"valid",
"name":"valid",
"address":{
correct data
},
"_orders1mpmPX":{
"edges":[
{
"node":{
correct data
},
"cursor":"correct data"
},
],
"pageInfo":{
correct data
}
}
}
}
}
但是当我从库中控制日志 Prop 时 详细描述我没有看到任何订单。我还得到了这个属性:__fragment__
,它似乎没有任何用处。对此的任何帮助将不胜感激。几个小时以来,我一直在互联网上搜索解决方案。如果有任何我没有提供的有用信息,请告诉我。
最佳答案
在花费大量时间尝试解决此问题后,我发现中继不喜欢您在片段查询中定义类型字段。这就是我的意思...库查询更改为:
export default Relay.createContainer(LibraryLongDescription, {
fragments: {
library: () => Relay.QL`
fragment on Library {
id,
name,
address{
id
sanNumber,
addressLine1,
addressLine2,
city,
state,
zip
},
orders(first: 500){
${Orders.getFragment('orders')}
}
}
`,
}
});
订单查询更改为:
export default Relay.createContainer(Orders, {
fragments: {
orders: () => Relay.QL`fragment on OrderConnection {
edges{
node{
id
purchaseDate
}
}
pageInfo{
hasPreviousPage
hasNextPage
}
}`
},
});
如果您没有在父组件上定义的某种根字段(如订单),中继将不知道如何将该字段解析回父组件以传递回您的子组件。通过这样做:orders(first: 500)
您声明该名称作为中继的依赖项以将其传递到该组件。如果没有该名称,中继将看不到您的组件需要该名称,并且不会通过它。我希望有一天这能帮助别人。我花了一整天多的时间试图弄清楚这个问题。
关于javascript - Relay.js 没有正确解析组合片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39112272/
当使用TypeScript时,babel-plugin-relay和relay-compiler不会解析我们的graphql调用。我们的 TS 生成的 JS 文件如下所示,针对 ES2015: var
我正在使用react-router-relay在一个项目中。考虑到每个组件基本上最终都会有一个与根查询同名的片段,所以这个设计对我来说似乎不太合适。难道每个组件不应该能够在根查询下拥有任意类型的唯一命
当我尝试实例化一个扩展Relay.Mutation的类时,我遇到了一个非常奇怪的react-relay类型错误。我使用 create-react-app my-app --scripts-versio
在 Relay 应用中处理全局应用程序状态的当前建议或最佳实践是什么?我需要管理一些严格属于客户端的状态(例如,导航面板是打开还是关闭),以及一些无法通过 GraphQL 获得的 RESTful 数据
我是 Relay 的新手,我遇到了片段上嵌套数据的问题。 当我在 graphiql 中测试时,以下查询返回正确的数据,因此我确信我的模式是正确的。 { viewer { customer
我有 2 个在主机上运行的从属 mysql 实例,它们从不同主机上的主服务器复制数据。所有实例都是 mysql 5.6。即使没有来自主实例的更改,从实例的中继 bin 日志也会不断变化。以下是 sla
我们有一个 graphql 服务器(不是用 javascript 编写的)服务于一个分页的对象列表。我们正在尝试符合中继规范,但我们遇到了一个有趣的案例,可以使用说明。 具体来说:是否允许游标依赖于连
如何在 Relay Modern 中取消订阅? 我已经按照 How to GraphQL React + Relay 上的订阅教程进行操作但它没有提及您如何取消订阅,也没有提及 Relay Moder
我开始使用 Relay 构建项目而且我[对我的项目结构有点困惑(我确实使用同构方法)。 这是我正常的 React 项目结构: -- project |-----src |
我一直在使用 react 和 relay 开发一个应用程序,现在我坚持实现身份验证。 我知道您可以通过 GraphQL 解析函数中可用的上下文将值传递给每个 graphql 请求。 我对传递什么以及如
为什么需要以及如何使用 viewer在 Relay.js 中正确吗? 我花了一周的时间来尝试理解 Relay.js。我现在对 GraphQL 很好,我也很了解它,但是我在将 GraphQL 和 Rel
我是 Relay 的新手,仍在努力解决它。根据我的理解,Relay 将查询与组件联系起来。这样,您可以说需要从 GraphQL 服务器提供组件 x、y 和 z。据我了解,官方react-relay库将
我正在考虑在我的应用程序中使用 graphql/relay 解决方案,我想知道哪些公司在生产中使用 graphql/relay(除了 facebook)。您能否在此列出使用它的公司及其案例研究。 谢谢
我的用例是,我有一个 Node 应用程序,它使用来自 CMS 的数据,并且在该 CMS 中,我让用户能够选择 React 组件作为“布局”。我希望 Relay 能够从该动态选择组件中获取 GraphQ
我在应用程序中使用 GraphQL + Relay,发现自己用 createFragmentContainer 包装了几乎所有组件,包括 DOM 层次结构中非常低的组件(通常是功能组件)。 这是使用片
{这是现代接力赛} 在我的 UserQuery.js 中, class UserQuery extends Component { render () { return (
这些天我正在尝试 React + Relay + Graphql。不幸的是,我找不到任何简单方便的方法来测试 Relay Container 包装的 React 组件。 基本上,我希望通过 TDD 实
我已经阅读了许多基于redux和relay的文章/文档,但我仍然很困惑这两个库有何不同? 这两个库的优点和缺点是什么? GraphQL 在中继中的具体作用是什么? 哪个库更适合 CRM/ERP 等企业
我不明白如何在 Graphite 烯的 ConnectionField 中使用自定义字段。我有类似的东西: class ShipConnection(Connection): extra =
我正在尝试使用 GraphQL 和 React Relay 构建一个应用程序。 作为此过程的一部分,我创建了一个具有以下规范的根查询: query { AllServices { edge
我是一名优秀的程序员,十分优秀!