Nextjs getInitialProps ошибка, препятствующая сборке на Netlify - PullRequest
0 голосов
/ 31 октября 2019

Привет, ребята, я унаследовал проект, созданный с помощью nextjs и работающий на Netlify. Я пытаюсь загрузить компонент, когда пользователь использует IE. Локально я могу сделать вид компонента без каких-либо проблем. Но когда сборка запускается (код передается в определенную ветку) сборка завершается неудачно на Netlify. Netlify, похоже, не любит следующее.

const userAgent = props ? props.req.headers['user-agent'] : navigator.userAgent

Открыто для любых предложений. Я новичок в Netlify и просто пытаюсь отобразить компонент, который позволяет пользователям знать, что их браузер не поддерживается. Ниже приведен код, который у меня есть в _document.js

_document.js

class MyDocument extends Document {

 static async getInitialProps(props) {
  const page = props.renderPage()
  const userAgent = props ? props.req.headers['user-agent'] : navigator.userAgent

  return {
    ...page,
    userAgent
  }
 }

renderBrowserSupport() {
  let msie = this.props.userAgent.indexOf('MSIE ');
  let ie11 = this.props.userAgent.indexOf('Trident/');

  if(msie > 0 || ie11 > 0) {
    return (
      <BrowserSupport/>
    )
  }

  else return false;
}

render() {
  <html lang="en">

  <body>
  {this.renderBrowserSupport()}
  </body>

  </html>
 }
}

export default MyDocument

Ошибка при запуске npm при запуске build

Cannot read property 'user-agent' of undefined

1 Ответ

0 голосов
/ 01 ноября 2019

Я столкнулся с несколькими проблемами при добавлении кода в _document.js, поэтому я выбрал другой подход:

  1. создал браузер обновления маршрута
  2. добавилкомпонент с сообщениями и альтернативными браузерами для IE
  3. добавлен скрипт для проверки, является ли браузер IE 11 или IE и перенаправлен на страницу обновления браузера, если это так
...