Я практиковал уроки ReactJS на Scrimba, где вам нужно передавать реквизиты id в массиве.
import React from 'react';
import Joke from './components/Joke.js'
import jokesData from './components/jokesData';
function App() {
const jokeComponents = jokesData.map(function(joke) {
return (
<Joke
obj = {{key: joke.id, question: joke.question, punchline: joke.punchLine}}
/>
)
})
return (
<div>
{jokeComponents}
</div>
)
}
export default App;Затем я получил предупреждение в консоли:
Журнал предупреждений
На изображении выше значение ключа было передано, но я все равно получил предупреждающее сообщение. Я пытаюсь передать элементы в один объект. Может ли кто-нибудь помочь мне найти проблему здесь?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете добавить атрибут key и передать его joke.id.
const jokeComponents = jokesData.map(function(joke) {
return (
<Joke
obj = {{key: joke.id, question: joke.question, punchline: joke.punchLine}}
key = {joke.id)
/>
)
})
Вы не должны использовать индекс для ключа.
Да, я исправил это, я заметил, что у него есть идентификатор для шутки, так что в любом случае индекс не нужен.
Вы должны передать ключ в качестве реквизита для компонента Joke. id был бы отличным выбором из-за того, как работает реакция согласования.
<Joke key = {joke.id}
obj = {{key: joke.id, question: joke.question, punchline: joke.punchLine}}
/>
<Joke key = {joke.id} ...>(в предупреждении написаноkey prop, в вашей шутке есть только реквизитobj)