Какой простой способ справиться с архитектурными различиями между кодовыми базами React Native и React Native Web?

Я работаю над приложением с двумя очень разными воплощениями:

  • приложение React Native, которое включает определенные службы обработки, поскольку использование в автономном режиме является обязательным
  • веб-приложение React Native, в котором доступ к этим службам осуществляется через Express API для повышения безопасности и производительности.

Для приложения RN мой код выглядит примерно так:

import summarize from '../services/summarize';
const response = summarize({ factors })

Для приложения RNW это:

const response = axios.put(`${ROOT_URL}/summarize`, { factors });

Каков чистый способ обработки такого разного кода? В настоящее время я комментирую/раскомментирую ту или иную версию в зависимости от моей цели сборки, но должны быть лучшие способы.


person ed94133    schedule 03.06.2021    source источник
comment
Platform.OS === 'web' reactnative.dev/docs/код для конкретной платформы   -  person Uğur Eren    schedule 03.06.2021
comment
Что ж, в версии RNW я даже не буду импортировать summary, поэтому я получу сообщение об ошибке, если на него ссылается какой-либо код.   -  person ed94133    schedule 03.06.2021
comment
Что ж, тогда вы можете использовать расширение файла для конкретной платформы (например, .web.js) или условный импорт с синтаксисом require или import() stackoverflow.com /а/50341763/5793132   -  person Uğur Eren    schedule 03.06.2021
comment
Я не знал о расширениях файлов для конкретных платформ. Это отлично сработает для меня. Не стесняйтесь сделать это ответом, и я приму его.   -  person ed94133    schedule 04.06.2021