【发布时间】:2017-06-25 04:09:14
【问题描述】:
如果我们在 React 应用程序上具有以下结构:
class BasePage extends React.Component {
render() {
return <div>
{this.props.header}
{/*<Header title={this.props.title} />*/}
</div>
}
}
BasePage.defaultProps = {
header: <header>Base Page</header>
}
class Header extends React.Component {
render() {
return <header>
<h1>{this.props.title}</h1>
</header>
}
}
class TestPage extends BasePage {
}
TestPage.defaultProps = {
header: <Header />
}
class Root extends React.Component {
render() {
return <div>
<TestPage
title="Test Page Title"
/>
</div>
}
}
ReactDOM.render(
<Root />,
document.getElementById('root')
)
如果我们有一个像<Header /> 这样的common 组件,我们可以像<Header title={this.props.title} /> 这样轻松地传递一个标题属性。
但是如果这个组件被定义为一个 prop 本身,我们如何在组件内部传递 props 呢?
例如,我们如何做这样的事情:
{this.props.header title={this.props.title}}
所以它会正确呈现测试页面标题?
重要提示:我们可以覆盖 Test 组件中的 render 方法。但是这个问题的目的是在不这样做的情况下解决这个问题。
【问题讨论】:
-
嗯,首先你不能分配道具,它们是只读的。其次,
this.props.header只是 JSX,它不需要任何道具。
标签: reactjs