在.map()函数中发送道具

时间:2016-11-08 18:24:47

标签: javascript reactjs

我在当前组件中有以下道具

static propTypes = {
    oPurchaseDetails: PropTypes.array,
    updateCart: PropTypes.func.isRequired,
  }

现在我想发送给CartItem组件。但它并没有在那里工作。

          this.props.oPurchaseDetails.map(function(item) {
            return (
               <CartItem oProductItem={item} updateCart={this.props.updateCart} />
             );
          })

如何从.map()函数发送prop函数?

2 个答案:

答案 0 :(得分:3)

正如@Brian所提到的,您的上下文已更改,这就是您无法从映射函数访问this的原因。

由于您已经在使用ES6功能,因此您还可以使用数组功能:

this.props.oPurchaseDetails.map(item =>
    <CartItem oProductItem={item} updateCart={this.props.updateCart} />
);

答案 1 :(得分:2)

map接受设置this上下文的第二个参数:

this.props.oPurchaseDetails.map(function(item) {
    return (
        <CartItem oProductItem={item} updateCart={this.props.updateCart} />
    );
}, this);