【问题标题】:React Relay manipulation with list使用列表反应中继操作
【发布时间】:2016-02-02 11:58:35
【问题描述】:

结构是

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 作为列表获取,然后我想操作此列表,例如排序或删除不需要等,但我看到有中继对象,无法理解如何获取数据并在设置之前更改它到组件?

【问题讨论】:

    标签: reactjs relayjs


    【解决方案1】:

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

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

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

    这样做的好处是,即使内部片段出于某种原因删除了name 字段,外部组件仍然会保留数据。这是一种关键行为,可以在不了解完整应用程序的情况下在本地推理组件。

    【讨论】:

      猜你喜欢
      • 2020-01-04
      • 2016-12-10
      • 2022-06-10
      • 2022-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      相关资源
      最近更新 更多