让我们使用TODO示例。在TodoList中,它(第81行)有一个由
组成的片段todos(status: $status, first: $limit) {
edges {
node {
id,
${Todo.getFragment('todo')},
},
},
....
}
现在如果我添加一个循环
this.props.viewer.todos.edges.map(edge =>
console.log(edge.node.text)
);
在第30行运行 renderTodos(),它将输出 undefined
有趣的是,如果我们将 text 添加到下面的片段
todos(status: $status, first: $limit) {
edges {
node {
id,
text,
${Todo.getFragment('todo')},
},
},
....
}
它实际上“声明”文本两次(在Todo组件中声明)并且循环完美。
我的问题是,为什么即使它们是由Graphql Server返回的,也无法从合成中获取“属性”?
答案 0 :(得分:1)
感谢#relay频道的#7485。
他指出这是设计的预期行为。
https://facebook.github.io/relay/docs/thinking-in-relay.html#data-masking