我是Lightning组件开发的新手,我正在尝试通过一些操作来实现lightning:datatable,例如添加新行,删除行和创建新行。
要创建一行,我正在使用快速操作,并使用quickActionAPI对其进行了调用:
var actionAPI = component.find("quickActionAPI");
var args = { actionName :"Contrat_cadre__c.My_rule"};
var anAction = actionAPI.selectAction(args)
.then(function(result) {
})
.catch(function(e) {
if (e.errors) {
alert('The action is unavailable');
}
});
它按预期工作,但是我需要手动刷新页面才能在数据表中看到新行。但是我不知道如何捕捉快速行动的成果。
答案 0 :(得分:0)
尝试将其放在“ then”块中:https://developer.salesforce.com/docs/component-library/bundle/force:refreshView/documentation
答案 1 :(得分:0)
谢谢您的帮助,这是我尝试过的:
在controller.js中:
var anAction = actionAPI.selectAction(args)
.then(function() {
console.log('enter in then');
helper.refreshPage();
})
在helper.js中:
refreshPage: function (component)
{
console.log('helper method');
var action = component.get('c.**myApexController**');
action.setCallback(component,
function(response) {
var state = response.getState();
console.log(state);
if (state === 'SUCCESS'){
console.log('success');
$A.get('e.force:refreshView').fire();
} else {
//do something
}
}
);
$A.enqueueAction(action);
}
似乎在调用动作时触发了then,因此在动作提交之前触发了。 (console.log此时显示“ enter in then”和“ helper method”,其他日志根本不显示)