Я использую спецификацию платформы 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} /> }