Machen Sie ein Mixin, wie Kumar sagte, aber erweitern Sie die Magento_Ui-Nachrichten nicht, da diese zum Auschecken usw. dienen, sondern erweitern Sie Magento_Theme messages.js. Der vollständige Code lautet wie folgt.
requirejs-config.js
var config = {
'config': {
'mixins': {
'Magento_Theme/js/view/messages': {
'Bemeir_General/js/mixin/messages-mixin': true
}
}
}
};
messages-mixin.js
define([
'jquery',
'uiComponent',
'Magento_Customer/js/customer-data',
'underscore',
'jquery/jquery-storageapi'
], function ($, Component, customerData, _) {
'use strict';
return function (targetModule) {
targetModule.defaults.isHidden = false;
targetModule.defaults.listens.isHidden = 'onHiddenChange';
targetModule.defaults.selector = '.page.messages .messages';
return targetModule.extend({
initialize: function () {
let original = this._super();
console.log(targetModule.defaults);
return original;
},
initObservable: function () {
this._super()
.observe('isHidden');
return this;
},
isVisible: function () {
return this.isHidden(!_.isEmpty(this.messages().messages) || !_.isEmpty(this.cookieMessages));
},
removeAll: function () {
$(this.selector).find('.message').removeClass('show');
},
onHiddenChange: function (isHidden) {
let self = this;
if (isHidden) {
setTimeout(function () {
$(self.selector).find('.message').removeClass('show');
self.isHidden('false');
}, 5000);
}
}
});
};
});
Stellen Sie sicher, dass Sie das Zeitlimit um 5 Sekunden zu niedrig vergrößern, damit der Kunde es tatsächlich bemerkt, und klicken Sie möglicherweise auf die Nachricht usw.
Hoffe das wird jemandem helfen. Auch Interessierte lesen dies bitte. https://alanstorm.com/magento-2-understanding-the-uielement-observe/