response-native getTimezoneOffset работает только в режиме отладки - PullRequest
0 голосов
/ 16 мая 2018

Мой текущий часовой пояс GMT + 1. В последнее время я иногда замечал, что получаю значение -60, тогда как в другой раз у меня было 0.

componentDidMount() {
  this.props.screenProps.showToast(new Date().getTimezoneOffset(), 1);
}

Теперь я понимаю, что, когда я отлаживаю его в Chrome, это происходит, когда я получаю правильный часовой пояс, и всякий раз, когда я отключаю удаленную отладку в Chrome, я получаю значение смещения, равное 0.

Кажется, что объектом Date () манипулируют по-разному в зависимости от среды.

Устройство, которое я тестирую, это Android. Кроме того, это будет по-другому на IOS?

Любое разъяснение по этому вопросу было бы очень полезно.

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Попробуйте отобразить только текущее время. Если он по-прежнему отображает неправильное время, проблема заключается в двигателе JS, на котором работают эти симуляторы. Попробуйте момент JS или любые другие легковесные библиотеки времени, если они работают для вашего случая.

0 голосов
/ 16 мая 2018

Я думаю, что это как-то связано с тем, что вы испытываете.

JavaScript Runtime При использовании React Native ваш код JavaScript будет выполняться в двух средах: на симуляторах и устройствах iOS, эмуляторах и устройствах Android React Native использует JavaScriptCore, который является механизмом JavaScript, которыйСила Сафари.На iOS ЗАО не использует JIT из-за отсутствия доступной для записи исполняемой памяти в приложениях iOS.При использовании отладки Chrome он запускает весь код JavaScript внутри самого Chrome и взаимодействует с собственным кодом через WebSocket.Итак, вы используете V8.

Я думаю, что это приводит к несогласованности, когда удаленная отладка включена / выключена.Найти больше информации здесь .

...