为 spfx 反应中的函数返回未定义
returning undefined for the function in spfx react
尝试使用 2 列进行级联下拉。但它一直返回未定义。无法在下拉函数中设置状态
值正在控制台中返回,但无法设置状态
private async test(getVal: any):promis<void> {
...
var timePeriod = this.dropdown(getval.key);
log(timePeriod)
//returns undefined
}
public dropdown(val: string){
sp.web.lists.getbytitle("").items.select("").filter("" + val + "'").getAll().the(function (data){
log(data)
for(var k in data){
timePeriod.push({key:data[k].period, text: data[k].Period})
}
retur data;
}
)
}
您的下拉功能没有正确返回。另外,您分享的代码片段中有几个拼写错误。
您需要在承诺处理程序之外创建一个变量,该变量将在您从 SharePoint API 获取数据后返回。
我已经更新了您的代码片段,展示了您是如何解决这个问题的。
public dropdown(val: string){
let output = [];
sp.web.lists.getbytitle("").items.select("").filter("" + val + "'").getAll().then(function (data){
//console.log(data);
for(var k in data){
output.push({key:data[k].period, text: data[k].Period})
}
/**
* The return statement below doesn't have any effect on the outcome of the function
* as any return here is for the internal function of the success/error handler
*
*
* return data;
*/
} );
return output;
}
尝试使用 2 列进行级联下拉。但它一直返回未定义。无法在下拉函数中设置状态
值正在控制台中返回,但无法设置状态
private async test(getVal: any):promis<void> {
...
var timePeriod = this.dropdown(getval.key);
log(timePeriod)
//returns undefined
}
public dropdown(val: string){
sp.web.lists.getbytitle("").items.select("").filter("" + val + "'").getAll().the(function (data){
log(data)
for(var k in data){
timePeriod.push({key:data[k].period, text: data[k].Period})
}
retur data;
}
)
}
您的下拉功能没有正确返回。另外,您分享的代码片段中有几个拼写错误。
您需要在承诺处理程序之外创建一个变量,该变量将在您从 SharePoint API 获取数据后返回。
我已经更新了您的代码片段,展示了您是如何解决这个问题的。
public dropdown(val: string){
let output = [];
sp.web.lists.getbytitle("").items.select("").filter("" + val + "'").getAll().then(function (data){
//console.log(data);
for(var k in data){
output.push({key:data[k].period, text: data[k].Period})
}
/**
* The return statement below doesn't have any effect on the outcome of the function
* as any return here is for the internal function of the success/error handler
*
*
* return data;
*/
} );
return output;
}