0

私はそのようなフラグメントを持っています:

fragments: {
  Viewer: () => Relay.QL`
    fragment house on Viewer { 
      House(id:$id){
        id
        baths
        beds
        built
        city {
          name
        }
        description
        image
        mls
        price
        street
        type {
          type
        }
        zip {
          code
        }
      }
    }
  `,
},

リスト内の家のエッジノードを反復処理するとき、このフラグメントを取得して再利用したいと思います。

Houses(city: $city, zip: $zip, type: $type, first: 20) {
  edges {
    node {
      id
      ${HousePage.getFragment('Viewer').getFragment('house')}
    }
  }
}

ノードからIDを取得し、別のコンポーネントからハウスフラグメントをリクエストする方法は? 私は4時間過ごしました.....OMG。

4

1 に答える 1

0

私が正しく理解していれば:

  • という名前のオブジェクト タイプがあります。House
  • 次のタイプのノードを持つという名前の接続タイプがありますHousesConnectionHouse

リスト コンテナー内:

class HouseList extends React.Component {
  render() {
    return this.props.viewer.Houses.edges.map(({node}) => 
      <House house={node} />
    );
  }
}

HouseList = Relay.createContainer(HouseList, {
  fragments: {
    viewer: () => Relay.QL`
      fragment on Viewer {
        Houses(city: $city, zip: $zip, type: $type, first: 20) {
          edges {
            node {
              ${HousePage.getFragment('House')}
            }
          }
        }
      }
    `,
  },
});

Houseコンテナ:

class House extends React.Component {
  render() {
    return <span>{this.props.house.mls}</span>;
  }
}

House = Relay.createContainer(House, {
  fragments: {
    house: () => Relay.QL`
      fragment on House {
        id
        baths
        beds
        built
        city {
          name
        }
        description
        image
        mls
        price
        street
        type {
          type
        }
        zip {
          code
        }
      }
    `,
  },
});
于 2016-03-09T15:40:16.830 に答える