2015-11-02 66 views
0

结构阵营继电器操纵与列表

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

从中继传递给每个组件的数据被屏蔽,因此即使其他组件发生请求,也无法访问它。为了访问任何领域,你必须要求它。

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

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

的好处是,即使当所述内片段去除name字段无论出于何种原因,外部组件将仍然有数据。这是一个关键的行为,可以在不了解完整应用程序的情况下在本地推理组件。