Ошибка TypeScript с расширением c, указанным в платформе Expo, когда компонентам требуются разные реквизиты? - PullRequest
0 голосов
/ 06 апреля 2020

Я использую спецификацию платформы Expo c расширения файла: https://docs.expo.io/versions/latest/react-native/platform-specific-code/#platform -specifi c -extensions

Если платформа web, то ref не требуется, но для Android и iOS это так. Кажется, TypeScript не знает, как это работает, и выдает мне ошибку типов реквизита:

<MyComponent
  foo={bar}
  ref={Platform.OS === "web" ? null : childRef}
/>

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

{ Platform.OS === "web" ? <MyWebComponent foo={bar} /> : <MyNativeComponent foo={bar} ref={childRef} /> }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...