Я нашел ошибку
После того, как я почти сдался, я нашел решение. Я перестраивал проект по частям, npm установка для npm установка, блок кода за блоком кода, пока я наконец не нашел проблему:
const language = navigator.language || navigator.userLanguage;
Да, как всегда, одна строка кода, сломал весь проект. Видите ли, chrome и firefox возвращают другое значение при использовании навигатора для получения языка браузера.
В моем случае Chrome и Firefox вернули en
, а edge вернул en-DE
Таким образом, будучи использованным, чтобы схватить правильный язык json сломал ссылку. Таким образом
"Невозможно получить свойство 'index' с неопределенной или нулевой ссылкой"
Перед удалением моего импорта компонента Header (для устранения неполадок) пришло то же сообщение, но вместо индекса было сказано заголовок. У меня нет компонента под названием индекс. За исключением исходного индекса. js. Таким образом, я предполагаю, что reactjs имеет фундаментальную проблему в этих браузерах. Я предполагаю, что у него есть проблемы с получением файловых структур реагирующих сборок?
, когда я ссылаюсь на язык в json, например, так:
my_json[language]["index"]
index - селектор страниц кажется, что это связано с компонентом, когда селектор был
my_json[language]["header"]
Так что я на самом деле был на правильном пути, но это была моя "файловая структура / json структура", которая сломалась в Edge IE и Safari. Так близко и все же так далеко.
Это было довольно странное и унизительное переживание. В конце концов, обнаружение этого сделало мой день все же! Спасибо всем, кто хотя бы сломал голову, читая этот вопрос.
После обнаружения этого сообщения об ошибке имело смысл, однако в настоящее время сузить его было невозможно. Наличие всплывающих имен компонентов также сделало эту охоту на ведьм некоторое время.
ОБНОВЛЕНИЕ ЭТОГО:
Похоже, что "хром" уже сообщал о "проблеме", на самом деле это ошибка, при которой возвращается только язык, но не код страны.
Chrome browser - navigator.language не возвращает код страны
Мое исправление:
Только на языке возврата:
const language = navigator.language.split("-")[0] || navigator.userLanguage.split("-")[0] || "en";
Для возврата только кода страны:
const country = navigator.language.split("-")[1] || navigator.userLanguage.split("-")[1] || "us";