代码之家  ›  专栏  ›  技术社区  ›  Ska

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

  •  0
  • Ska  · 技术社区  · 8 年前

    这是来自 docs . 问题是,如果我的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
        }
      `,
    );
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Yangshun Tay    7 年前

    我不确定这是否是您想要的(我也只是从中继开始),但您可以使用 keys createFragmentContainer 功能:

    碎片容器:

    export default createFragmentContainer(TodoItem, {
      todo: graphql`
        fragment TodoItem_todo on Todo {
          text
          isComplete
        }
      `,
      friend: graphql`
        fragment FriendItem_friend on Friends {
          name
        }
      `,
    });
    

    然后在你的 queryRenderer 类似这样:

    query={graphql`
        query AppQuery {
            todos {
                ...TodoItem_todo
            }
            friends {
                ...FriendItem_friend
            }
        }
    `}