Vishal Zaptech
Vishal Zaptech

Reputation: 183

Getting Element type is Invalid

am using react native API to display data in to FlatList and unfortunately getting below error:

Error : Element type is invalid: expected a string.

So far I have done as below:

import React, { Component } from "react";
import { View, Text, FlatList,List } from "react-native";
// import {Row} from './Row';

export default class FlatListDemo extends Component {
  constructor(props) {
    super(props);

    this.state = {
      loading: false,
      data: [],
      page: 1,
      seed: 1,
      error: null,
      refreshing: false,
    };
  }

  componentDidMount() {
    this.makeRemoteRequest();
  }

  makeRemoteRequest = () => {
    const { page, seed } = this.state;
    const url = `https://randomuser.me/api/?seed=${seed}&page=${page}&results=20`;
    this.setState({ loading: true });
    fetch(url)
      .then(res => res.json())
      .then(res => {
        this.setState({
          data: page === 1 ? res.results : [...this.state.data, ...res.results],
          error: res.error || null,
          loading: false,
          refreshing: false
        });
      })
      .catch(error => {
        this.setState({ error, loading: false });
      });
  };

  render() {
    return (
      <View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
         <List>
      <FlatList
        data={this.state.data}
        renderItem={({ item }) => (
          <ListItem
            roundAvatar
            title={`${item.name.first} ${item.name.last}`}
            subtitle={item.email}
            avatar={{ uri: item.picture.thumbnail }}
          />
        )}
         keyExtractor={item => item.email}
      />
    </List>
      </View>
    );
  }
}

So, I have tried resolving from last two hours but stacked there. What might be the issue?

Upvotes: 0

Views: 70

Answers (1)

Rupesh Bramhankar
Rupesh Bramhankar

Reputation: 166

Remove List Component from Your Code and Try.

Upvotes: 1

Related Questions