在Salesforce Lightning中执行演出时出错

时间:2019-02-04 16:35:40

标签: salesforce salesforce-lightning

下面的代码在执行 toastEvent.setParams 语句时引发错误。不知道我错过了什么还是在19年春季弃用了?

loadContacts : function(cmp) {
    var action = cmp.get("c.getContacts");
    action.setCallback(this, function(response){
        var state = response.getState();
        if (state === 'SUCCESS') {
            cmp.set('v.contacts', response.getReturnValue());
            cmp.set('v.contactList', response.getReturnValue());
            this.updateTotal(cmp);
        }
        console.log('Here');
        var toastEvent = $A.get("e.force:showToast");
        if (state === 'SUCCESS') {
            toastEvent.setParams({
                "title" : 'Success!',
                "message" : 'Your contacts have been loaded successfully.'
            });
        }
        else {
            toastEvent.setParams({
                "title" : "Error!",
                "message" : "Something has gone wrong."
            });
        }
        toastEvent.fire();
    });
    $A.enqueueAction(action);
},

这是错误的屏幕截图: enter image description here

2 个答案:

答案 0 :(得分:0)

From the docs

  

此事件由one.app容器处理。 Lightning Experience,Salesforce应用程序和Lightning社区均支持此功能。

当您尝试在one.app容器上下文之外获取$A.get("e.force:showToast")时,会弹出该错误(例如,如果您将组件放在Lightning App中进行测试,而不是将其拖到其中的记录页上建造者)。 $A.get("e.force:showToast")以未定义的形式返回,并且在未定义的情况下调用setParams会引发错误。

尝试将您的组件拖动到记录详细信息页面或社区上,或从Lighting组件创建一个选项卡。如果需要在one.app上下文之外使用组件,则需要自己实现显示/隐藏toast逻辑。

答案 1 :(得分:0)

您可以使用public function conversations(int $limit = null): object { $table = (new MessagesMembers)->getTable(); return $this->hasMany(MessagesMembers::class, 'user', 'id') ->addSelect(['user' => function ($query) use ($table) { $query->addSelect('user') ->from($table . ' AS sub') ->where('user', '!=', $this->getAttribute('id')) ->whereRaw('`sub`.`conversation_id` = `' . $table . '`.`conversation_id`'); }]) ->orderBy('created_at', 'DESC') ->limit($limit) ->get(); } 。在光环组件中,添加:

lightning:notificationsLibrary

并将您的辅助方法更改为:

<lightning:notificationsLibrary aura:id="notifLib"/>