提交APIQuickAction后刷新页面

时间:2020-08-17 13:19:05

标签: salesforce salesforce-lightning

我是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');
    }
});

它按预期工作,但是我需要手动刷新页面才能在数据表中看到新行。但是我不知道如何捕捉快速行动的成果。

2 个答案:

答案 0 :(得分:0)

答案 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”,其他日志根本不显示)