This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема mp is not defined

jango81

Участник портала
24 Дек 2023
22
7
13
Код:
mp is not defined
ReferenceError: mp is not defined
    at checkValidAuthInputs (http://localhost:3000/main.42690231a3550995267c.hot-update.js:111:7)
    at onClick (http://localhost:3000/main.42690231a3550995267c.hot-update.js:652:28)
    at HTMLUnknownElement.callCallback (http://localhost:3000/static/js/bundle.js:10343:18)
    at Object.invokeGuardedCallbackDev (http://localhost:3000/static/js/bundle.js:10387:20)
    at invokeGuardedCallback (http://localhost:3000/static/js/bundle.js:10444:35)
    at invokeGuardedCallbackAndCatchFirstError (http://localhost:3000/static/js/bundle.js:10458:29)
    at executeDispatch (http://localhost:3000/static/js/bundle.js:14601:7)
    at processDispatchQueueItemsInOrder (http://localhost:3000/static/js/bundle.js:14627:11)
    at processDispatchQueue (http://localhost:3000/static/js/bundle.js:14638:9)
    at dispatchEventsForPlugins (http://localhost:3000/static/js/bundle.js:14647:7)


я пробовал отключить через eslint но это тоже не помогло

Код:
/* eslint-disable */
mp.trigger("closeAuth");

Также видел как кто то в решении добавлял глобально mp в eslintconfig. Но это тоже не помогло

Код:
"eslintConfig": {
    "globals": {
      "mp": true
    },
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },

Что делать?
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,412
238
100
Ошибка "mp is not defined" возникает, когда переменная "mp" не определена или не имеет значения.

Вы попытались отключить проверку через eslint с помощью комментария "/* eslint-disable */", но это не решит проблему, потому что это относится только к правилам eslint, а не к самой ошибке.

Также вы добавили "mp" в глобальные переменные eslint, но это может не помочь, если "mp" не определена в вашем коде.

Чтобы исправить ошибку, вам нужно определить переменную "mp" в вашем коде до использования ее. Например, вы можете добавить следующую строку перед использованием "mp":

Код:
var mp = window.mp;

Убедитесь, что вы добавляете эту строку в нужное место в коде, чтобы переменная "mp" была определена.
 
Реакции: youngBeaver

NKondr

Мастер
High developer
FrontEnd developer
5 Янв 2022
154
174
121
26
Если ты имеешь ввиду добавить
Код:
mp.trigger("closeAuth") // eslint-disable-line
То это не помогло
Тебе нужно внимательно посмотреть.

Обрати внимание на условие
Код:
  if (process.env.NODE_ENV !== 'production') {
        console.log(`Разработка`)
    } else {
    console.log(`Продакшен`)
        // @ts-ignore
        mp.trigger(eventTarget, eventName, JSON.stringify(...args)) // eslint-disable-line
}

Это означает если текущая среда выполнения приложения находится не в продакшене(то есть в режиме разработки), то мы отправляем console.log в котором (как пример) будут данные которые отправляются (название ивента и т.д).
В противном случае (когда приложение в режиме продакшн), то сработает mp.trigger.

Следовательно во время разработки не будет вызываться mp.trigger, после того как ты сбилдишь и режим разработки изменится на продакшен,то будет вызван mp.trigger.
 
Реакции: MADARAdev