react-apollo
提供将组件道具转换为查询变量的能力:
<MyComponentWithData propsForQueryVariables={...} />
但我需要使用包装组件中的变量开始查询。
就像是:
class MyComponent extends React.Component {
//...
onReady() {
// should be first request to server
this.props.refetch({
// variables here
})
}
onFilterChanged() {
this.props.refetch({
// new variables here
})
}
}
const MyComponentWithData = graphql(QUERY, {
options: {
waitUntilComponentStartQuery: true
// pollInterval:...
},
props({ data: { items, refetch } }) {
return {
items: items,
refetch: refetch
};
}
})(MyComponent);
更新
QUERY
看起来MyComponent
像
query getItems($filter: JSON!) {
items(filter: $filter) {
id
name
}
}
filter
不可为空。所以第一个请求应该有有效的变量filter
,并且这个变量应该在包装的组件中创建。