0
我只是在reactjs中繞過組件。這是我的組件/容器的一部分:如何在Reactjs中觸發組件的方法?
onAddToCart(id) {
console.log('testing onaddtocart')
this.props.dispatch({type: 'ADD_TO_CART', id: id});
}
render() {
var Packs = [];
if (this.props.packsData != undefined && this.props.packsData.existingFoxtelPackage != undefined) {
if (this.props.packsData.existingFoxtelPackage.eligiblePacks.length > 0) {
Packs = this.props.packsData.existingFoxtelPackage.eligiblePacks;
console.log('testing=Packs', Packs);
}
}
return (
<div>hello from Packscontainer!!!
<div>
{
Packs.map(pack =>
<Pack id={pack.id} name={pack.name} addToCart={this.onAddToCart.bind(this, pack.id)}/>
)}
</div>
</div>
)
}
的問題是,onAddToCart方法未在addToCart按鈕點擊發射時,這是包組件的一部分:
render() {
const { addToCart } = this.props
return (
<div>hello from pack
{this.props.id} - {this.props.name}
<button onClick={addToCart}>Add to cart</button>
</div>
)
}
我怎樣才能觸發onAddToc藝術方法在容器中?
如果打印出來'addToCart'或調試到'render',看到的價值,它是一個函數或'undefined'另一個問題?你是否在控制檯中看到任何錯誤,抱怨'this'是'undefined'(因爲你沒有綁定'addToCart')? –