我正在尝试获取有关我发送的查询的信息。我想让用户知道是否找到了一些结果。但由于某种原因,我无法访问包含找到的结果数量的变量。我也尝试定义一个全局变量,并尝试使用window.variable
,但它只是在函数内部没有更新。我想知道这个问题的最佳解决方案是什么。
这是我的代码:
submitHandle() {
//const r = 0;
//let r = 0;
//window.r = 0; // I have tried with all 3 declarations but still nothing
Initialize sgvizler Query
var Q = new window.sgvizler.Query(),
onSuccessFunc = function (dataTable) {
var r = dataTable.getNumberOfRows();
},
onFailFunc = function (datatable)
{
//handle error
};
var tmp = Q.query( " some query " )
.endpointURL("some endpoint URL")
.endpointOutputFormat("json");
tmp.getDataTable(onSuccessFunc, onFailFunc);
tmp.chartFunction("some chart function")
.draw(" div ID");
//handle states
this.setState({ something: false });
this.setState({ something: true });
this.setState({ something: true });
}
console.log(r) // <-- error = r is undefined.
最好的解决方案是更改onSuccessFunc
内部的某些状态但是如果我尝试它然后弹出错误Cannot read property 'setState' of undefined
,这很有趣,因为我可以访问并更改它,如果我把它其他setStates
所在的位置。所以我想我正在尝试更改局部变量中的变量值,并且反应只是不允许它。任何可以帮助我解决问题的技巧?
答案 0 :(得分:0)
onSuccessFunc().then(v=>console.log(r)).catch(v=>console.log('error',v))
它可能有用。并检查此link