Javascript Expo react本机元素类型无效:应为字符串或类/函数,但Get:未定义
如果这是一个垃圾问题,我试着去学“对不起” 我使用托管流创建了一个带有expo init的演示应用程序。并尝试使用react native sideswipe在主屏幕中添加旋转木马 我找到了一个示例,并尝试将其添加到我的应用程序中。但是我在HomeScreen.js中得到了Carousel组件的这个错误: 不变冲突:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记了从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。 我不知道问题出在哪里,怎么解决。我检查组件和道具是否存在于我使用的版本中 App.js的相关部分:Javascript Expo react本机元素类型无效:应为字符串或类/函数,但Get:未定义,javascript,react-native,expo,Javascript,React Native,Expo,如果这是一个垃圾问题,我试着去学“对不起” 我使用托管流创建了一个带有expo init的演示应用程序。并尝试使用react native sideswipe在主屏幕中添加旋转木马 我找到了一个示例,并尝试将其添加到我的应用程序中。但是我在HomeScreen.js中得到了Carousel组件的这个错误: 不变冲突:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记了从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。 我不知道问
const [isLoadingComplete, setLoadingComplete] = useState(false);
if (!isLoadingComplete && !props.skipLoadingScreen) {
return (
<AppLoading
startAsync={loadResourcesAsync}
onError={handleLoadingError}
onFinish={() => handleFinishLoading(setLoadingComplete)}
/>
);
} else {
return (
<View style={styles.container}>
{Platform.OS === 'ios' && <StatusBar barStyle="default" />}
<AppNavigator />
</View>
);
}
}
MainTabNavigator.js的相关部分
import React from 'react';
import { Platform } from 'react-native';
import { createStackNavigator, createBottomTabNavigator } from 'react-navigation';
import HomeScreen from '../screens/HomeScreen';
const config = Platform.select({
web: { headerMode: 'screen' },
default: {},
});
const HomeStack = createStackNavigator(
{
Home: HomeScreen,
},
config
);
homesren.js:
import React from 'react';
import {
Animated,
Easing,
Image,
Platform,
ScrollView,
StyleSheet,
Text,
TouchableOpacity,
View,
Dimensions,
} from 'react-native';
import { Constants } from 'expo';
import { MonoText } from '../components/StyledText';
import { Carousel, AnimatedCarouselItem } from 'react-native-sideswipe';
import { Card, Badge } from 'react-native-elements';
const { width } = Dimensions.get('window');
const data = [1, 2, 3, 4, 5];
export default function HomeScreen() {
return (
<View style={styles.container}>
<ScrollView
style={styles.container}
contentContainerStyle={styles.contentContainer}>
<View style={styles.welcomeContainer}>
<Image
source={require('../assets/images/logo.png')}
style={styles.headerImage}
/>
<Carousel
data={data}
style={{ width, maxHeight: 225 }}
itemWidth={width}
threshold={120}
contentOffset={0}
renderItem={({ item }) => (
<View style={{ width: width, paddingHorizontal: 10 }}>
<Card
title="Local Modules"
containerStyle={{ maxWidth: width, height: 225 }}>
<Badge value={item} />
<Text style={{ marginTop: 10 }}>
Science
</Text>
</Card>
</View>
)}
/>
</View>
<View style={styles.helpContainer}>
</View>
</ScrollView>
<View style={styles.tabBarInfoContainer}>
</View>
</View>
);
}
从“React”导入React;
进口{
有生气的
缓和,,
形象,,
平台,
滚动视图,
样式表,
文本,
可触摸不透明度,
看法
尺寸,
}从“反应本机”;
从“expo”导入{Constants};
从“../components/StyledText”导入{MonoText};
从“react native sideswipe”导入{Carousel,AnimatedCarouselItem};
从“react native elements”导入{Card,Badge};
const{width}=Dimensions.get('window');
常量数据=[1,2,3,4,5];
导出默认功能主屏幕(){
返回(
(
科学类
)}
/>
);
}
谢谢你的帮助 我认为您需要从
MainTabNavigator.js
导出HomeStack:
export default const HomeStack = createStackNavigator({
Home: HomeScreen,
},
config
);
如果不行,请告诉我。这完全是我的错:(.react-native sideswipe使用sideswipe hiltononline更改了组件名称,谢谢您的帮助。零食代码使用0.0.6版本的react-native sideswipe。我不知道模块的新版本中更改了组件名称。很抱歉用这样一个愚蠢的问题打扰您。
export default const HomeStack = createStackNavigator({
Home: HomeScreen,
},
config
);