Файл с указанием c файлов платформы. ios. js | файл. android. js неправильно определен - PullRequest
0 голосов
/ 25 февраля 2020

В соответствии с ответной собственной документацией"React Native обнаружит, когда файл имеет расширение. ios. Или. android.., И загрузит соответствующий файл платформы при необходимости из других компонентов". Я пытаюсь импортировать разные хранилища для каждой из платформ some.store.ios.js и some.store.android.js и создать их экземпляр внутри одного общего компонента my.component.js.

some.store . android. js

const SomeStore = class {
    consturctor() {
        console.log('Android')
    }
}
export default SomeStore

some.store. ios. js

const SomeStore = class {
    consturctor() {
        console.log('IOS')
    }
}
export default SomeStore

my .component. js функциональный компонент

import SomeStore from 'stores/some.store'
const MyComponent = observer(() => {
    [someStore]= useState(() => new SomeStore())
}

К сожалению, я получаю журнал IOS для обеих платформ. Я тестировал на реальных мобильных устройствах.

Обходной путь, который я использую в настоящее время, - это экспорт магазинов с разными именами, импорт обоих и выбор необходимого внутри компонента:

import SomeStoreAndroid from 'stores/some.store.android'
import SomeStoreIOS from 'stores/some.store.ios'

...

if(Platform.OS === "android") {
    [someStore]= useState(() => new SomeStoreAndroid())
} else {
    [someStore]= useState(() => new SomeStoreIOS())
}

Но это не нужно, почему не работает первый (естественный) метод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...