我能够将父母的道具功能传递给孩子,但我似乎无法将其从孩子传给孩子。
有问题的代码:
var ProposalList = React.createClass({
render : function() {
var proposalNode = this.props.data.map(function(proposal) {
return (
<ProposalItem submitForm={this.props.submitForm} id={proposal.id} name={proposal.name} price={proposal.price}/>
);
});
return (
<div><ul className="proposalList">{proposalNode}</ul></div>
);
}
});
冲突的行是名为“ProposalItem”的子项,被识别为undefined的prop是:submitForm = {this.props.submitForm}或“submitForm”。
ProposalList虽然渲染得很好。
<ProposalList submitForm={this.loadFromServer} data={this.state.data} />
我似乎无法抓住submitForm并将其传递给下一个组件子。
答案 0 :(得分:3)
使用This related answer时,请注意现在this
是什么,您忘记将thisArg
传递给map
,因此this
应为{{1}或其他东西,而不是你期望的反应组件。
window
应该有效。
或者您可以使用var proposalNode = this.props.data.map(function (proposal) {
return (
<ProposalItem submitForm={this.props.submitForm} id={proposal.id} name={proposal.name} price={proposal.price}/>
);
}, this);
// ^^^^ add this param.
,然后在地图回调中使用var self = this;
,或使用.map将地图的回调函数绑定到反应组件。