我有这个页面,你点击交易按钮,下面的部分来自子路线。数据应根据父路由中的下拉值更改。下面的事务表不会更改。 这是一张快照。
这里的代码有点像。
portfolioid来自dropdown.in parent
<div style = {{ 'padding':'10px'}} portfolioId={this.state.portfolioId}>
// display transaction here based on state portfolioid
{this.props.children}
</div>
在孩子中我尝试了很多方法,但它没有用。
答案 0 :(得分:0)
您实际上并未将portfolioId
道具传递给任何子组件。 this.props.children
是指包含在组件标记内的组件,因此portfolioId
对this.props.children
的内容没有任何说法。
您可以创建一个子组件,并将portfolioId
作为您尝试过的道具传递下来,然后在子组件中访问它。
父组件
...
render: function() {
return (
<div>
<Portfolios portfolioId={this.state.portfolioId} />
// Whatever else content...
</div>
);
}
...
然后您可以使用this.props.portfolioId
访问 Portfolios 组件中的prop,并根据该组件更改视图。
或者,如果您需要使用this.props.children
,则可以使用this technique将道具映射到其中。