React, Firefox 20, Illegal operation on WrappedNative prototype object

233
23 июля 2018, 14:30

У пользователей на старом FF 20.0, 22,0
возникает следующая ошибка, при рендере <input /> даже пустого,:

Illegal operation on WrappedNative prototype object.
[17:10:31.350] The above error occurred in the <input> component:
    in input (at RegistrationFormInput.js:39)
 ... stack
React will try to recreate this component tree from scratch using the error boundary you provided, App.

38 <div className="holder-input"> 39 <input` className="form-control" placeholder={props.placeholder} id={props.id} name={props.name || props.id} type={props.type} maxLength="255" onChange={props.onChange} value={props.value} autoComplete={props.autoComplete} /> </div>

Никак не могу ее решить и понять из-за чего она возникает, версия React - "react": "^16.2.0",

Кто нибудь сталкивался с таким ?

Answer 1

Для того, чтобы разобраться в причине проблемы нужно посмотреть историю версий Mozilla, ну и соответственно историю версий React. Начнем с браузера Mozilla:

  • Firefox Releases
  • Firefox 20 - April 2, 2013
  • Firefox 22 - June 25, 2013

Как видим, 20 и 22 версии вышли еще в 2013 году, то есть им 5 лет (на мой взгляд для браузера это слишком устаревшая версия). Теперь посмотрим на историю версий React:

  • React CHANGELOG
  • React 16.2.0 (November 28, 2017)
  • React 0.3.3 (June 20, 2013)
  • React 0.3.0 (May 29, 2013) - Initial public release

Первоначальный публичный выпуск React вышел в конце мая 2013 года, то есть самому React чуть более пяти лет, а у вас браузеры, которым так же - пять лет. Вы испольуете версию React этого года и разница с браузерами слишком велика. Не думаю, что удастся как-то пофиксить эту проблему, а если и удастся, то скорее всего всплывет новая проблема - обновите браузеры на новую версию и все заработает. Это мое мнение, основанное на простой логике (в новом браузере Mozilla все работает, даже с IE нет проблем).

READ ALSO
Не получается сложить JS

Не получается сложить JS

$("#bonus")text(sum + 20); так получается сложить, а так $("#bonus")

196
Почему в массив stream заносится undefined,

Почему в массив stream заносится undefined,

мне нужно, чтобы в массив stream записывался последний бит из массива arr, и потом этот же последний бит нужно удалить из arr

156
Как отправить обновленный response через fetch?

Как отправить обновленный response через fetch?

Как через fetch в существующий реквест добавить данные? Для примера: есть endpoint, у него в теле, в одном из свойств есть булево значение, которое...

182
Кнопка показать ещё, после &ldquo;перейти на страницу&rdquo; и &ldquo;вернутся назад&rdquo;, отображалась полностью предыдущая страница

Кнопка показать ещё, после “перейти на страницу” и “вернутся назад”, отображалась полностью предыдущая страница

На сайте есть каталог списка товаровНа странице отображается например 24 товара, постраничная навигация и кнопка показать ещё, которая подгружает...

189