用map添加元素到Array?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用map添加元素到Array?相关的知识,希望对你有一定的参考价值。
我有一个我从道具得到的数组:this.arrayContenido = this.props.children;
。如果我console.log
这个,我有一个像这样的数组: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.log
为componentDidMount
做this.childrens
我有未定义的结果?
答案
看起来你有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 prop中使用了箭头函数,但是在周围的匿名函数中却没有...
第二个问题是this.props.children:它不应该被视为一个数组。如果你想迭代一个React组件的子节点,你必须使用React.Children.map(this.props.children, () => ....)
请查看React.Children了解更多详情。
以上是关于用map添加元素到Array?的主要内容,如果未能解决你的问题,请参考以下文章