Я пробовал Axe ios с реакцией на родную, но у меня проблемы. FlatList не отображает данные и выдает мне предупреждение: «У каждого ребенка в списке должна быть уникальная« ключевая »опора».
Я искал онлайн несколько часов и могу не могу найти решение. Самое близкое, что я мог найти, это настроить keyExtractor, что я и сделал.
Вот мой код:
import React, { useEffect, useState } from 'react';
import { ActivityIndicator, FlatList, Text, View } from 'react-native';
import Axios from 'axios';
export default App = () => {
const [isLoading, setLoading] = useState(true);
const [data, setData] = useState([]);
useEffect(() => {
Axios.get('https://reactnative.dev/movies.json')
.then(({data}) => setData({data}))
.catch((error) => console.error(error))
.finally(() => setLoading(false));
});
return (
<View style={{ flex: 1, padding: 24 }}>
{isLoading ? <ActivityIndicator/> : (
<FlatList
data={JSON.stringify(data)}
keyExtractor={({ id }, index) => id}
renderItem={({ item }) => (
<Text>{item.title}, {item.releaseYear}</Text>
)}
/>
)}
</View>
);
};
Я понимаю, что это, вероятно, очень простая проблема, но я бы очень благодарен, если вы мне помогли.
Думаю, стоит упомянуть, что он работает с fetch. Так что я думаю, что проблема в запросе ax ios .get, а не в flatList.
- вот API, если он используется:
{
"title": "The Basics - Networking",
"description": "Your app fetched this from a remote endpoint!",
"movies": [
{ "id": "1", "title": "Star Wars", "releaseYear": "1977" },
{ "id": "2", "title": "Back to the Future", "releaseYear": "1985" },
{ "id": "3", "title": "The Matrix", "releaseYear": "1999" },
{ "id": "4", "title": "Inception", "releaseYear": "2010" },
{ "id": "5", "title": "Interstellar", "releaseYear": "2014" }
]
}
edit: после попытки здесь ответы перестали выдавать предупреждение, но выводит пустой список.