Я использую react-native-css-transformer
для выставки. когда я использую файл js, он работает. но если я поменяю js на tsx, я получу ошибку в className. но это работает, как я могу скрыть/удалить эту ошибку?
No overload matches this call.
Overload 1 of 2, '(props: TextProps | Readonly<TextProps>): Text', gave the following error.
Type '{ children: string; className: any; style: { fontSize: number; }; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Text> & Readonly<TextProps>'.
Property 'className' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Text> & Readonly<TextProps>'.
const Test = () => {
return (
<View>
<Text className = {styles.Container} style = {{ fontSize: 18 }}>
TEST
</Text>
</View>
);
};
Глядя на репозиторий Github для react-native-css-transformer
, похоже, что вам нужно установить другую библиотеку автора:
https://github.com/kristerkari/react-native-css-modules
В README говорится: «📦 Поддерживает Typescript с определениями типов React Native, которые добавляют поддержку модулей CSS React Native и преобразователей CSS, Sass, LESS, PostCSS или Stylus, которые автоматически создают типизацию для ваших файлов CSS».
Однако, поскольку уже установленная вами библиотека преобразует CSS во время импорта или перед ним, вы также можете просто использовать реквизит style
вместо className
:
<Text style = {[styles.Container, { fontSize: 18 }]>
TEST
</Text>
Это сделает то же самое и не потребует дополнительной поддержки библиотек.
Если не ошибаюсь, у
Text
нетClassName
реквизита