带有 Meteor 的 Blaze-Apollo,观察者不会触发变量更改的订阅

Posted

技术标签:

【中文标题】带有 Meteor 的 Blaze-Apollo,观察者不会触发变量更改的订阅【英文标题】:Blaze-Apollo w/ Meteor, observer not triggering the subscribe on variable change 【发布时间】:2019-04-03 18:43:06 【问题描述】:

我正在尝试使用 graphql 查询从 blaze-apollo 重新获取有关变量更改的数据。

查询是:

this.rows = this.gqlQuery(
    query: GET_DATA,
    variables: 
        databaseId: dbId,
        accessToken: accessToken,
        limit: 2
    ,
    fetchPolicy: "network-only"
);

订阅者是:

 this.rowsObservableSub = this.rows.observer.subscribe(
    next: ( loading ) => 
        console.log("loading is ===> ", loading);
    
);

观察者被称为:

this.autorun(()=> 
    if(this.searchTerm.get())
        const variables = 
            databaseId: dbId,
            accessToken: accessToken,
            limit: 4
        ;
        this.rows.observer.setVariables(variables);
    
);

this.rowObservableSubsearchTerm 更改时不会在variable 更改时触发。

【问题讨论】:

【参考方案1】:

找到解决方案,以下更改告诉观察者坚持使用network-only fetchPolicy 而不是点击cache

this.rows.observer.setVariables(variables, true)

【讨论】:

以上是关于带有 Meteor 的 Blaze-Apollo,观察者不会触发变量更改的订阅的主要内容,如果未能解决你的问题,请参考以下文章

地理定位不适用于带有 Meteor 的 iOS

Meteor.loginWithPassword 不适用于带有 @ 字符的用户名

为啥我的带有帐户包的 Meteor 应用程序没有发送验证电子邮件?

带有angular1.5组件meteor和ui-router的动态标题

我在哪里可以在 Meteor 1.3 中安装带有 npm 的包,以便其他 npm 库可以需要它

如何将带有参数的 Meteor Spacebars 助手传递给另一个助手属性?