#typescript #react-native
#typescript #react-native
Вопрос:
Я хочу импортировать модуль в соответствии с платформой.
Например:
import MapViewIOS from 'react-native-map-clustering'
import MapViewAndroid from 'react-native-maps'
const MapView = Platform.select({
ios: MapViewIOS,
android: MapViewAndroid,
})
Ошибка:
Тип элемента JSX ‘MapView’ не имеет никаких сигнатур конструкций или вызовов.ts(2604)
Комментарии:
1. Попробуйте в JSX создать условие для platform.os === «iOS»? <MapViewIos />: <MapViewAndroid/>
Ответ №1:
Это выглядит нормально.
Вот абстрактный пример того, что вы пытаетесь сделать работающим.
Это говорит о том, что вы неправильно используете MapView или используемая вами версия MapView повреждена.
Ответ №2:
В react-native вы должны разделить файл по платформе. Например, создайте два файла с MapView.ios.js
MapView.android.js
именем и, чтобы экспортировать конкретный компонент для платформы, и везде, где вам нужно использовать MapView, импортируйте их следующим образом import MapView from "./MapView"