У меня есть массив, который я получаю из реквизита: this.arrayContenido = this.props.children;. Если я console.info это, у меня есть такой массив: https://puu.sh/Dlsce.png
хорошо, мне нужно разделить этот массив, чтобы анимировать их с помощью gsap. Я сопоставил этот массив и присвоил каждому элементу этого массива новый массив (this.children =[] в конструкторе):
{this.arrayContenido.map(function(item, i) {
return (
<div key = {i} ref = {div => (this.childrens[i] = div)}>
{item}
</div>
);
})}
Почему, когда я делаю console.info в componentDidMount для this.childrens, у меня неопределенные результаты?
Я не понимаю что вы говорите :(
В коде вы используете this.childrens, но в объяснении вы написали this.children. Обратите внимание на s



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


Похоже, у вас проблемы с this. Вы можете использовать функцию стрелки, чтобы получить правильный this
{
this.arrayContenido.map((item, i) => {
return (
<div key = {i} ref = {div => (this.childrens[i] = div)}>
{item}
</div>
);
});
}
Это предполагает, что этот код находится в функции render или любой функции с правильным this, который является компонентом.
Первая проблема — это анонимная функция без привязки, this не будет тем, что вы ожидаете внутри нее, и поэтому this.children будет неопределенным. Вместо этого вы можете использовать функцию стрелки, которая обеспечивает автоматическую привязку:
{this.arrayContenido.map((item, i) => {
return (
<div key = {i} ref = {div => (this.childrens[i] = div)}>
{item}
</div>
);
})}
Вы уже использовали функцию стрелки в реквизите ref, но не в окружающей анонимной функции...
Вторая проблема связана с this.props.children: его не следует рассматривать как массив. Если вы хотите перебирать дочерние элементы компонента React, вы должны использовать React.Children.map(this.props.children, () => ....)
посмотрите React.Дети для более подробной информации.
Опечатка? Ваш код говорит
this.childrens[i]Множественное число от «ребенок» — «дети», у вас есть «детис»