Я учусь реагировать. Я хотел создать в контейнере 8 одинаковых элементов.
Ниже мой код
class Card extends React.Component{
render(){
return(
<div className = "card">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. </p>
</div>
)
}
}
Компонент контейнера представлен ниже.
class Cardholder extends React.Component{
render(){
const cards = new Array(9).map((e,i)=> <Card key = {i}/>);
return(
<div>
{cards}
</div>
);
}
}
export default Cardholder;
Оба компонента находятся в одном файле. Компоненты не отображаются. Ошибок нет. В консоли браузера отображается следующее сообщение.
[Log] [HMR] Waiting for update signal from WDS...
[Info] [WDS] Hot Module Replacement enabled.
Когда я даю массив как
new Array(9).fill(<Card/>)
оно работает. Но существует "ключевая" ошибка, поскольку для элементов не указано значение ключа.



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


new Array(9) //produce 9 undefined
обратный вызов вызывается только для индексов массива, которым присвоены значения
new Array(9).fill(null).map((e,i)=> <Card key = {i}/>);
Для пустого массива он возвращает пустой массив, а не индексы. Думаю, проблема в этом.
arr.map((e,i) => i)
Так что вам стоит попробовать что-нибудь вроде
var arr = new Array(9).fill(0)
И тогда это сработает.
Поскольку для пустой карты массива также возвращается пустой массив, ничего не отображается.
Карты по-прежнему будут массивом. Вы пробовали присоединиться к жалам:
new Array(9).map(...).join('')? Или React сделает это автоматически?