Получение инвариантного нарушения при использовании FlatList - PullRequest
0 голосов
/ 10 ноября 2019

Привет! Я пытаюсь отобразить данные из API в Flatlist, но продолжаю получать сообщение об ошибке «Инвариантное нарушение: недопустимый тип элемента: ожидается строка (для встроенных компонентов) или класс / функция длясоставные компоненты, но получили неопределенные. Скорее всего, вы забыли экспортировать компонент из файла, в котором он определен, или вы могли смешать импорт по умолчанию и имена. Проверьте метод рендеринга 'Query'.

Я пытался использовать исходные данные, а затем статические данные массива элементов JSON. Я также попытался вернуть элемент Text, и это работает, но как только я попробую FlatList, я получаю сообщение об ошибке выше. Вы можете увидеть закомментированный исходный код и тестовый код, который я пробовал во фрагменте кода ниже.

render() {
        const DATA = [
            {
              id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
              title: 'First Item',
            },
            {
              id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
              title: 'Second Item',
            },
            {
              id: '58694a0f-3da1-471f-bd96-145571e29d72',
              title: 'Third Item',
            },
          ];
          function Item({ title }) {
            return (
              <View>
                <Text>{title}</Text>
              </View>
            );
          }          
                const TestQuery = () => (
                   <Query query={tasksList}>
                   {({ loading, error, data, fetchMore }) => {
                     if (loading) return <Text>Loading...</Text>;
                     if (error) return <Text>Error </Text>;

                     //return <Text>{JSON.stringify(data.getAllTasksExt.items)}</Text>
                   return <FlatList
                            data={DATA}
                            //data={data.getAllTasksExt.items}
                            renderItem={({item})=> <Item title={item.title} />}
                   />
                   }
                }
                   </Query> 
                   );

                   return (
                    <SafeAreaView>
                   <TestQuery/>
                   </SafeAreaView>
                   )

    }
}

1 Ответ

0 голосов
/ 11 ноября 2019

На всякий случай, кто-то сталкивается с подобной проблемой. Когда я использовал FlatList, мой код Visual Studio, автоматически импортировал его из реакции, а не реакции-родной. Это было причиной ошибки выше. После того, как я исправил импорт FlatList, проблема была решена.

...