Определить, если используется следующая JS, реагировать или реагировать нативно - PullRequest
0 голосов
/ 24 апреля 2020

Я создаю библиотеку, работающую с приложениями React. Поскольку он будет работать в экосистеме React, некоторые функции будут работать по-разному в зависимости от среды.

Я ищу способ определить, является ли текущая среда приложением ReactJS (сделано с например, create-Reaction-app), или если он использует Next JS поверх SSR, или если это мобильное приложение, созданное с помощью React Native.

Существует ли способ javascript, чтобы узнать эта информация?

Спасибо:)

1 Ответ

1 голос
/ 04 мая 2020

Чтобы проверить, работает ли ваш код в режиме native, вы можете использовать navigator.product. React Native возвращает navigator.product как «ReactNative». Вот ссылка на предложение, которое реализовано. https://github.com/facebook/react-native/issues/1331

Чтобы проверить, выполняется ли ваш код в Next JS или браузере, вы можете проверить, определен объект window или document или нет. Под nodeJS, window не определено.

React native определил общие объекты браузера, такие как окно и документ, для обеспечения работы библиотек, нацеленных на браузеры. Вот ссылка на код. https://github.com/facebook/react-native/blob/master/Libraries/Core/InitializeCore.js

...