【发布时间】:2019-01-12 16:30:27
【问题描述】:
我的Home.js 文件中有一个<Query />
Home.js
<Query
query={GET_TODOS_BY_PRODUCT}
variables={{ id: state.get("selectedProduct.id"), completed: true }}
>
{({ data: { product } }) => {
return <Main todos={product.todos} hashtag={product.hashtag} />;
}}
</Query>
在我的Main.js 文件中,我有<Mutation /> 组件-
Main.js
<Mutation
key={v4()}
mutation={SWITCH_SELECTED_PRODUCT}
refetchQueries={() => {
console.log("refetchQueries", product.id);
return {
query: GET_TODOS_BY_PRODUCT,
variables: { id: product.id }
};
}}
>
{switchSelectedProduct => (
<Product
onClick={() => {
switchSelectedProduct({
variables: { id: product.id, name: product.name }
});
}}
highlight={
data.selectedProduct
? product.name === data.selectedProduct.name
: i === 0
}
>
<Name>{product.name}</Name>
</Product>
)}
</Mutation>
当在<Mutation /> 组件内调用switchSelectedProduct 时,它会运行refetchQueries,因为我看到console.log("refetchQueries", product.id); 语句,但我在Home.js 文件中的<Query /> 组件中看不到更新的结果。
如何告诉Home.js 中的<Query /> 组件在refetchQueries 在Main.js 文件中运行时得到通知?
有什么建议吗?
【问题讨论】:
标签: javascript reactjs graphql apollo react-apollo