无法从道具中获取数据
问题描述:
我遇到了prop
问题。下面是我的代码,我不明白为什么当我使用{this.props.name}
呈现段落时,它不显示props
的名称。这可能是一个愚蠢的问题,但我刚刚开始与React
我的冒险,所以我需要你的帮助。无法从道具中获取数据
class CardGenerator extends React.Component{
render(){
return (
<div>
<Name/>
</div>
)
}
}
class Name extends React.Component{
render(){
return <p>{this.props.name}</p>
}
}
ReactDOM.render(<CardGenerator name='David'/>, document.getElementById('app'))
答
因为您没有将道具传递给Name组件。您正在将名称传递给CardGenerator
组件,它将通过this.props.name
提供。要访问Name组件中的内部,您需要再次将该值传递给Name组件。
使用此:
class CardGenerator extends React.Component{
render(){
return (
<div>
<Name name={this.props.name}/>
</div>
)
}
}
class Name extends React.Component{
render(){
return <p>{this.props.name}</p>
}
}
ReactDOM.render(<CardGenerator name='David'/>, document.getElementById('app'))
检查工作示例:
class CardGenerator extends React.Component{
render(){
return (
<div>
<Name name={this.props.name}/>
</div>
)
}
}
class Name extends React.Component{
render(){
return <p>{this.props.name}</p>
}
}
ReactDOM.render(<CardGenerator name='David'/>, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id='app'/>
答
您传递name
到CardGenerator
组件,但随后的CardGenerator
组件未通过name
至Name
组件。
对:)我太亲近了。谢谢,Mayank! –