我正在出于学习目的开发React Native应用程序。现在,我正在使用TouchableWithoutFeedback组件来响应用户交互。但是我遇到了错误。请在下面查看我的代码。
class Events extends React.Component {
static navigationOptions = {
title: "Events"
};
constructor(props) {
super(props);
this.state = {
data: [
{
id: 1,
name: "Name 1",
image_url: "https://www.vkguy.co.uk/images/slideshow/05.jpg"
},
{
id: 2,
name: "Name 2",
image_url: "https://www.vkguy.co.uk/images/slideshow/05.jpg"
},
{
id: 3,
name: "Name 3",
image_url: "https://www.vkguy.co.uk/images/slideshow/05.jpg"
}
]
};
}
_handleLoadMore() {}
renderItem(item) {
return (
<TouchableWithoutFeedback onPress={() => {
}}>
<View>
<Card>
<CardItem cardBody>
<Image
source={{ uri: item.image_url }}
style={{ height: 200, width: null, flex: 1 }}
/>
</CardItem>
<CardItem>
<Left>
<Button transparent>
<Icon active name="thumbs-up" />
<Text>12 Likes</Text>
</Button>
</Left>
<Body>
<Button transparent>
<Icon active name="chatbubbles" />
<Text>4 Comments</Text>
</Button>
</Body>
<Right>
<Text>11h ago</Text>
</Right>
</CardItem>
</Card>
</View>
</TouchableWithoutFeedback>
);
}
render() {
return (
<View style={{ flex: 1, width: "100%" }}>
<FlatList
data={this.state.data}
keyExtractor={item => item.id.toString()}
renderItem={({ item }) => this.renderItem(item)}
onEndReached={this._handleLoadMore}
/>
</View>
);
}
}
export default Events;
当我单击视图时,出现此错误。
Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.
我的代码有什么问题,我该如何解决?
答案 0 :(得分:0)
以开始,也许尝试打开App.js文件并修改此行 类YourApp扩展了组件{ 进入 导出默认类YourApp扩展Component <{}> {
答案 1 :(得分:0)
无法看到您的进口货,很难说。如果确定要导出组件,则可能与命名导出与默认导出有关,或者忘记导出其中一个组件。检查以确保您使用的是默认导出...
export default ExampleComponent
您的导入不包含方括号,看起来像
import ExampleComponent from '../../folder/file'
否则,如果您使用的是这样的命名出口...
export const ExampleComponent = () => {
您的导入内容包含方括号
import { ExampleComponent } from '../../folder/file'
如果提供包括进口商品在内的所有相关组件,将为您提供更多帮助
答案 2 :(得分:0)
不确定您是否已解决此问题,但我遇到了同样的问题。
这是一个相当愚蠢的错误的简单解决方案。
import React, { Component, TouchableWithoutFeedback } from "react";
import { View } from "react-native";
应该是
import React, { Component } from "react";
import { View, TouchableWithoutFeedback } from "react-native";