我正在使用带有TypeScript的React Native来构建应用程序。我使用React Navigation进行导航。
在我的导航器中,我使用React Native Elements中的图标作为选项卡。为了使用它们,我必须导入React。但是,我的小棉人不认识我在使用它。它说:
[ts] 'React' is declared but its value is never read.
这是我的代码:
import DetailScreen from "../screens/Detail";
import HomeScreen from "../screens/Home";
import LoadingScreen from "../screens/Loading";
import OptionsScreen from "../screens/Options";
import SettingsScreen from "../screens/Settings";
import React from "react";
import { Platform } from "react-native";
import { Icon } from "react-native-elements";
import {
createBottomTabNavigator,
createDrawerNavigator,
createStackNavigator,
createSwitchNavigator,
NavigationSceneRendererProps,
NavigationTransitionProps,
StackViewTransitionConfigs,
TabScene,
TransitionConfig
} from "react-navigation";
// Some other code
const HomeStack = createStackNavigator(
{ DetailScreen, HomeScreen, OptionsScreen },
// TODO: Rename the config from 'CustomTransitionConfig' to 'dynamicModalTransition'.
{ initialRouteName: "HomeScreen", transitionConfig: dynamicModalTransition }
);
HomeStack.navigationOptions = {
tabBarLabel: "Home",
tabBarIcon: ({ tintColor }: TabScene) => <Icon name="ios-home" type="ionicon" color={tintColor} />
};
const SettingsStack = createStackNavigator({ SettingsScreen });
SettingsStack.navigationOptions = {
tabBarLabel: "Settings",
tabBarIcon: ({ tintColor }: TabScene) => <Icon name="ios-cog" type="ionicon" color={tintColor} />
};
const MainNavigator = Platform.select({
ios: createBottomTabNavigator({ HomeStack, SettingsStack }),
android: createDrawerNavigator({ HomeStack, SettingsStack })
});
const RootSwitch = createSwitchNavigator(
{ LoadingScreen, MainNavigator },
{ initialRouteName: "MainNavigator" }
);
export default RootSwitch;
这是怎么回事?为什么TypeScript无法识别React?
此问题的一个子错误是<Icon />
的每个属性都有错误:
[ts] '>' expected.
[ts] Cannot find name 'name'.
any
它只说颜色和类型。
答案 0 :(得分:2)
当文件包含.tsx
之类的JSX语法时,使用文件扩展名.ts
代替<Icon ... />
。