我的App
组件有一个reload
按钮。单击reload
实际上应该通过重新触发graphql查询来执行重新提取。
我目前正在执行重新加载的方式是在用户点击reload
时使用Apollos的重新获取功能。但是,单击重新加载时会出现以下错误:
这是我的graphql HOC代码:
const mapApiToProps = graphql(ASSETS_QUERY, {
props: ({ ownProps, data }) => {
return {
assets: data.assets,
isLoading: data.loading,
handleReload: data.refetch // Doesn't currently work
}
}
});
这是我的问题:
export const ASSETS_QUERY = gql`
query getUserAssets {
assets {
body
id
}
}`
这是我的组件代码:
class App extends Component {
render() {
const {handleReload, isLoading, assets} = this.props;
return (
<div>
<ReloadBtn handleReload={handleReload} isLoading={isLoading} />
<AssetList assets={assets} />
</div>
)
}
}
最后,我的连接:
export default compose(
connect(mapStateToProps, mapDispatchToProps),
mapApiToProps
)(App);
有关错误发生原因的任何见解?
答案 0 :(得分:0)
return {
assets: data.assets,
isLoading: data.loading,
handleReload: () => { data.refetch() }
}
答案 1 :(得分:0)
我遇到了同样的错误,出于某种原因,传递 () => refetch() 而不是 refetch 到 Button 的 onPress 为我解决了这个问题。所以
<Button onPress={() => refetch()} title="some button"/>
代替
<Button onPress={refetch} title="some button"/>