道具没有转移给大孩子

时间:2015-08-04 10:38:28

标签: javascript reactjs

我能够将父母的道具功能传递给孩子,但我似乎无法将其从孩子传给孩子。

有问题的代码:

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并将其传递给下一个组件子。

1 个答案:

答案 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将地图的回调函数绑定到反应组件。