Я не могу использовать Platform.select () в выражениях javascript в JSX (фигурные скобки) успешно. Приложение по-прежнему компилируется, но компонент отсутствует . Если я напрямую вызываю функцию выбора, она работает, как показано в // Works
. Это происходит из-за того, что «ключ» Platform.OS не передается, когда он находится внутри выражений JSX? Документы для модуля платформы довольно ограничен?
import React from 'react';
import {View, Platform, Text} from 'react-native';
// Does not work:
const PlatformText = () => {
return (
<View>
{Platform.select({
ios: () => <Text>IOS</Text>,
android: () => <Text>Android</Text>,
})}
</View>
);
};
// Works:
const PlatformText = Platform.select({
ios: () => <Text>IOS</Text>,
android: () => <Text>Android</Text>,
});
export default PlatformText;
2 ответа
Это происходит потому, что вы возвращаете функцию. Никто не звонит этот обратный вызов. Если вы хотите использовать этот компонент с Platform.select
, просто верните нужный компонент:
const PlatformText = () => {
return (
<View>
{Platform.select({
ios: <Text>IOS</Text>,
android: <Text>Android</Text>,
})}
</View>
);
};
В разделе « не работает » вы возвращаете функцию , а в разделе « работает » вы возвращаете результат Platform-Select прямо.
Поэтому убедитесь, что вы правильно вызываете свой PlatformText, чтобы получить Результат.
Похожие вопросы
Новые вопросы
react-native
React Native — это библиотека JavaScript, используемая для создания собственных мобильных приложений с использованием React. Основное внимание в React Native уделяется эффективности разработчиков на всех платформах, которые вам интересны — научитесь один раз, пишите где угодно.