Я новичок в React Native и слежу за учебником. Я использую FlatList для рендеринга компонентов. Это моя составляющая:
const HomeScreen = (props) => {
console.log("articles: ", props.articles);
return (
<View>
<FlatList
data={ props.articles }
renderItem={({item}) => <Text> {item.title}</Text>}
/>
</View>
);
}
В руководстве упоминается, что если мы не используем KeyExtarctor, FlatList выдаст это предупреждение.
VirtualizedList: отсутствуют ключи для элементов, обязательно укажите свойство ключа для каждого элемента или укажите настраиваемый keyExtractor.
Я не вижу подобных предупреждений. Учебник довольно старый, поэтому мне было интересно, сохраняется ли эта проблема с последней версией React Native?
Отвечает ли это на ваш вопрос? Базовый код FlatList выдает предупреждение — React Native — person nimramubashir schedule 07.05.2021
Нет, это не так. По этому вопросу я должен получить предупреждение. Но я ничего не получаю. Мой вопрос: почему я не получаю предупреждения, когда мне нужно? @Abhi — person nimramubashir schedule 08.05.2021
Элементы массива
props.articles
должны иметьkey
или уникальное свойство, чтобы назначить его ключу.keyExtractor
требуется, чтобы избежать воссоздания списка путем отслеживания переупорядочения элементов.ВАЖНАЯ ИНФОРМАЦИЯ
React всегда использует уникальный ключ для отслеживания обновлений в компоненте. По умолчанию FlatList ищет либо настраиваемую реализацию keyExtractor, либо поле с именем
key
в элементе данных, в противном случае он используетarray index
в качестве значения ключа. Идентификатор — это уникальное значение в ответе, которое можно использовать для реализации keyExtractor.