代码之家  ›  专栏  ›  技术社区  ›  Wai Yan Hein

TouchableWithoutFeedback正在引发呈现错误

  •  0
  • Wai Yan Hein  · 技术社区  · 5 年前

    我正在开发一个用于学习目的的React本地应用程序。现在我使用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.
    

    enter image description here

    我的代码有什么问题,我该如何修复?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Vagtse    5 年前

    首先,可以尝试打开App.js文件并修改这一行 类YourApp扩展组件{ 进入之内 导出应用程序扩展组件的默认类<{}>{

        2
  •  0
  •   warrenbuffering    5 年前

    如果看不到你的进口货,很难说。如果确定要导出组件,则可能与命名与默认导出有关,或者忘记导出组件之一。检查以确保您使用的是默认导出。。。

    export default ExampleComponent

    您的导入不包含括号,并且看起来像

    import ExampleComponent from '../../folder/file'

    否则,如果您使用的是这样的命名导出。。。

    export const ExampleComponent = () => {

    您的导入包括括号

    import { ExampleComponent } from '../../folder/file'

    如果您提供包括导入在内的所有相关组件,则可以为您提供更多帮助

        3
  •  0
  •   Usman Ali    5 年前

    不确定你是否解决了这个问题,但我也有同样的问题。

    对一个相当愚蠢的错误很容易解决。

    import React, { Component, TouchableWithoutFeedback } from "react";
    import { View } from "react-native";
    

    import React, { Component } from "react";
    import { View, TouchableWithoutFeedback } from "react-native";
    
    推荐文章