Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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/3/reactjs/24.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
Javascript 变量在Relay.setVariables之后未定义_Javascript_Reactjs_Fragment_Relay - Fatal编程技术网

Javascript 变量在Relay.setVariables之后未定义

Javascript 变量在Relay.setVariables之后未定义,javascript,reactjs,fragment,relay,Javascript,Reactjs,Fragment,Relay,我有一个根容器,它有一些关系变量: export default Relay.createContainer(UsageView, { initialVariables: { start: null, end: null, }, fragments: { viewer: ({ start, end }) => Relay.QL` fragment on viewer { ${ProductList.getFragment('v

我有一个根容器,它有一些
关系变量

export default Relay.createContainer(UsageView, {
  initialVariables: {
    start: null,
    end: null,
  },
  fragments: {
    viewer: ({ start, end }) => Relay.QL`
      fragment on viewer {
        ${ProductList.getFragment('viewer', { start, end })}
      }
    `,
  },
});
这些变量被传递到
ProductList
组件,并在其片段中使用:

export default Relay.createContainer(Component, {
  initialVariables: {
    start: null,
    end: null,
  },
  fragments: {
    viewer: ({ start, end }) => Relay.QL`
      fragment on viewer {
        id
        organization {
          createdAt
          products (start: $start, end: $end) {
            name
            usageTotal
            ${ProductListItem.getFragment('data', { start, end })}
          }
        }
      }
    `,
  },
});
如您所见,这些信息随后被传递到另一个组件
ProductListItem

第一次加载页面时,所有数据都会被提取、加载并呈现得很好。我有一个下拉列表,允许用户更改开始结束值,然后调用父容器中的
中继。setVariables

setDateRange = ({ start, end }) => {
  this.props.relay.setVariables({
    start,
    end,
  }, (state) => {
    console.log('READYSTATE CHANGE', state);
  });
}
调用此函数时,调用
onReadyStateChange
4次,消息顺序如下:

  • “网络查询启动”
  • “缓存\恢复\启动”
  • “缓存\还原\失败”
  • “网络\u查询\u已接收\u全部”
  • 此操作完成后,开始结束的值为
    未定义
    ,导致所有内容都中断


    我似乎不明白为什么会发生这种情况,因为
    setVariables
    中设置为startend的值是有效的。

    我意识到我没有正确使用
    setDateRange
    函数的输入——它被传递了一个JSON字符串,需要进行解析。不幸的是,从中继请求中无法判断这就是问题所在