Javascript console Uncaught TypeError: Constr is not a constructor error that will be seen when we have made some mistakes on the javascript file in Magento.
Error structure looks like,
layout.js:137 Uncaught TypeError: Constr is not a constructor
at Object.initComponent (layout.js:137)
at fire (jquery.js:3238)
at Object.fireWith [as resolveWith] (jquery.js:3368)
at Object.deferred.<computed> (jquery.js:3467)
at fire (jquery.js:3238)
at Object.fireWith [as resolveWith] (jquery.js:3368)
at Object.deferred.<computed> [as resolve] (jquery.js:3467)
at layout.js:120
at Object.execCb (require.js:1650)
at Module.check (require.js:866)
I have faced the above error when I deal with Magento_Ui/js/core/app custom components in my module.
<script type="text/x-magento-init">
{
"*": {
"Magento_Ui/js/core/app" : {
"components" : {
"favoriteItems": {
"component": "Rbj_Favorite/js/favorite-products"
}
}
}
}
}
</script>
Now When you create favorite-products javascript file in your module,
define([], function () {
// your logic
});
I just forgot to return the function in the javascript file and throws that error on a console for me.
Resolution For Me:
Fixed by adding a return function in the custom js file.
define([], function () {
return function () {
console.log('JS Calling');
// write your logic here.
}
});
You must have to return function when you call custom component using Magento 2 require js approach.
