所以我有这样的 Apollo 查询组件:
<Query
fetchPolicy='network-only' // also tried without and with 'no-cache'
query={GET_MENUS}
variables={{
foo // This has the default value of the state
}}
>
{({ loading, error, data, refetch }) => {
// Display Data here
// We have an Imput here that can change the State of Bar in the parent Component
<Button
onPress={() => {
/*refetch({
foo: { bar}
}); */
setBar(blubb); // I am using react hooks (useState)
}}
text='Refresh!'
/>
}
)}
</Query>
我尝试使用 refetch 方法重新获取,也只是更新状态。实际上,我检查了 Apollo 服务器,在这两种方法中,新变量都通过了,但新数据没有更新。有趣的是,如果我只是在状态中使用另一个默认值,它就可以正常工作。我也尝试了不同的获取策略,但没有任何运气。
我认为它应该是非常基本的,但到目前为止我还没有找到任何解决方案......
那么如何使用我的新变量获取数据呢?
编辑:
GET_MENUS 有点复杂,但这就是全部。我将变量传递给不同的解析器,因为它们是嵌套的。Foo Bar thingy 是“每日”变量
const GET_MENUS = gql`
query getMenus($lat: Float!, $lng: Float!, $daily: Daily) {
getMenus(lat: $lat, lng: $lng) {
distance
location {
_id
street
streetNumber
plz
city
coordinates
shopIDs {
name
togo
shopType
menus(daily: $daily) {
_id
name
price
hot
sweet
togo
allergies
components
}
}
}
}
}
`;