使用列表进行React Relay操作

时间:2015-11-02 14:51:12

标签: reactjs relayjs

结构是

store: (Component) => Relay.QL`
  query StoreQuery {
    store { ${Component.getFragment('store')} },
  }
`,

store: () => Relay.QL`
  fragment on Store {
    activities {
      ${Activity.getFragment('activity')}
    },
  }
`,

activity: () => Relay.QL`
  fragment on Activity {
    name,
    icon,
    color
  }
`,

我得到props.activities作为列表然后我想操纵这个列表例如排序或删除不需要等等但我看到有继电器对象并且无法理解如何获取数据并在设置之前更改它组件?

1 个答案:

答案 0 :(得分:1)

从中继传递到每个组件的数据被屏蔽,因此即使另一个组件碰巧请求它也无法访问它。要访问任何字段,您必须要求它。

假设,外部组件想要根据name字段对活动进行排序。您需要更新片段,以便明确询问该组件中的名称。

fragment on Store {
  activities {
    name
    ${Activity.getFragment('activity')}
  },
}

好处是,即使内部片段由于某种原因移除name字段,外部组件仍将具有数据。这是一种关键行为,可以在不知道完整应用程序的情况下在本地推理组件。