Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs apollo(graphql)查询中无法识别FlowRouter_Reactjs_Meteor_Graphql_Apollostack_React Apollo - Fatal编程技术网

Reactjs apollo(graphql)查询中无法识别FlowRouter

Reactjs apollo(graphql)查询中无法识别FlowRouter,reactjs,meteor,graphql,apollostack,react-apollo,Reactjs,Meteor,Graphql,Apollostack,React Apollo,我在使用react apollo和FlowRouter(在meteor项目中)时遇到问题。这是我的graphql查询(应该每5秒更新一次): 如果我对userId和registerToken参数进行硬编码,查询工作正常。 所以我想这里的问题是这些FlowRouter.getQueryParam()函数返回未定义的(即使我在客户端)。如果我在MyComponent或浏览器控制台中调用它们,它们工作得很好 此代码是否在页面加载时运行?我不明白为什么,但可能getQueryParam在页面加载时总是未

我在使用
react apollo
FlowRouter
(在
meteor
项目中)时遇到问题。这是我的
graphql
查询(应该每5秒更新一次):

如果我对
userId
registerToken
参数进行硬编码,查询工作正常。

所以我想这里的问题是这些
FlowRouter.getQueryParam()
函数返回
未定义的
(即使我在客户端)。如果我在
MyComponent
或浏览器控制台中调用它们,它们工作得很好

此代码是否在页面加载时运行?我不明白为什么,但可能
getQueryParam
在页面加载时总是未定义?(或者您可以解析
location.href

如果是,则它是被动的,因此您可以等到它有一个值,然后启动查询:

Tracker.autorun(c =>
  if (FlowRouter.getQueryParam('r')) {
    // do query
    c.stop()
  }
)

根据Loren的回答,我省略了
FlowRouter.getQueryParam()
函数,而是使用纯JavaScript(复制自):

用法

// query string: ?foo=lorem&bar=&baz
var foo = getParameterByName('foo'); // "lorem"
var bar = getParameterByName('bar'); // "" (present with empty value)
var baz = getParameterByName('baz'); // "" (present with no value)
var qux = getParameterByName('qux'); // null (absent)
一切都好了

function getParameterByName(name, url) {
    if (!url) {
      url = window.location.href;
    }
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}
// query string: ?foo=lorem&bar=&baz
var foo = getParameterByName('foo'); // "lorem"
var bar = getParameterByName('bar'); // "" (present with empty value)
var baz = getParameterByName('baz'); // "" (present with no value)
var qux = getParameterByName('qux'); // null (absent)