Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 一个React组件中有多个继电器碎片?_Reactjs_Graphql_Relay_Relaymodern - Fatal编程技术网

Reactjs 一个React组件中有多个继电器碎片?

Reactjs 一个React组件中有多个继电器碎片?,reactjs,graphql,relay,relaymodern,Reactjs,Graphql,Relay,Relaymodern,这是一个例子。问题是,如果我的TodoItem组件中还需要一些其他数据,这些数据在数据图中完全位于不同的位置,并且无法通过Todo->TodoItem链到达,该怎么办 class TodoItem extends React.Component { render() { const item = this.props.data; } } module.exports = createFragmentContainer( TodoItem, graphql` fr

这是一个例子。问题是,如果我的TodoItem组件中还需要一些其他数据,这些数据在数据图中完全位于不同的位置,并且无法通过Todo->TodoItem链到达,该怎么办

class TodoItem extends React.Component {
  render() {
    const item = this.props.data;

  }
}
module.exports = createFragmentContainer(
  TodoItem,
  graphql`
    fragment TodoItem on Todo {
      text
      isComplete
    }
  `,
);
似乎Relay/GraphQL要求视图与数据模型在同一层次结构中组成。组件是否有办法访问其他片段?我不知道,像这样的:

module.exports = createFragmentContainer(
  TodoItem,
  graphql`
    fragment TodoItem on Todo {
      text
      isComplete
    }
  `,
  graphql`
    fragment FriendItem on Friends {
      name
    }
  `,
);
query={graphql`
    query AppQuery {
        todos {
            ...TodoItem_todo
        }
        friends {
            ...FriendItem_friend
        }
    }
`}

我不确定这是否是您想要的(我也只是从relay开始),但您可以在
createFragmentContainer
函数中指定不同的片段:

碎片容器:

export default createFragmentContainer(TodoItem, {
  todo: graphql`
    fragment TodoItem_todo on Todo {
      text
      isComplete
    }
  `,
  friend: graphql`
    fragment FriendItem_friend on Friends {
      name
    }
  `,
});
然后在您的
queryRenderer
中:

module.exports = createFragmentContainer(
  TodoItem,
  graphql`
    fragment TodoItem on Todo {
      text
      isComplete
    }
  `,
  graphql`
    fragment FriendItem on Friends {
      name
    }
  `,
);
query={graphql`
    query AppQuery {
        todos {
            ...TodoItem_todo
        }
        friends {
            ...FriendItem_friend
        }
    }
`}

我不确定这是否是您想要的(我也只是从relay开始),但您可以在
createFragmentContainer
函数中指定不同的片段:

碎片容器:

export default createFragmentContainer(TodoItem, {
  todo: graphql`
    fragment TodoItem_todo on Todo {
      text
      isComplete
    }
  `,
  friend: graphql`
    fragment FriendItem_friend on Friends {
      name
    }
  `,
});
然后在您的
queryRenderer
中:

module.exports = createFragmentContainer(
  TodoItem,
  graphql`
    fragment TodoItem on Todo {
      text
      isComplete
    }
  `,
  graphql`
    fragment FriendItem on Friends {
      name
    }
  `,
);
query={graphql`
    query AppQuery {
        todos {
            ...TodoItem_todo
        }
        friends {
            ...FriendItem_friend
        }
    }
`}

这似乎正是我想要的。你测试过吗?不是用相同的项目,而是用相似的数据结构。这似乎正是我想要的。你测试过吗?不是用相同的项目,而是用相似的数据结构。完美