我有一个小但令人沮丧的错误。我有一个父组件,它将一个道具传递给它的孩子:
上级:
const { door } = this.props || []
...
{this.state.showModal ? <ClusterModal door={door} /> : null}
当我想在子组件中访问它时:
this.props.door
。另外,
door
道具还有一个我想访问的名为doors
的钥匙。所以我尝试了:console.log(this.props.door.doors)
并且控制台给了我:太好了!但是React告诉我这一点:
无法读取未定义的属性“门”
抱歉,这是一个不好解释的问题,但我无法解决。
谢谢阅读!
编辑
这是父母:
const { door } = this.props
const ifCluster = (
<div>
{door.type === 'cluster' ? (
<div className="door-flex-item-2">
<a
className="sub-title-text-container"
onClick={() => this.toggleModalButton()}
>
Hejsan
</a>
{this.state.showModal ? this.props.door ? (
<ClusterModal door={door} />
) : null : null}
</div>
) : null}
</div>
)
这是孩子:
render() {
// const { door } = this.props || []
const customers = this.props.customers || []
const keyedCustomers = _.keyBy(customers, '_id')
const deliveries = this.props.deliveries || []
const keyedDeliveries = _.keyBy(deliveries, '_id')
console.log(this.props.door)
const clusterDoors = this.props.door.doors.map((clusterDoor, i) => {
console.log(clusterDoor)
我注意到,第一次登录
this.props.door
时,我会得到数据,但是第二次出于某种原因,它会得到undefined
。 最佳答案
将prop值存储在状态中,并检查值是否与prop中的值相同。用ComponentWillReceiveProps(nextProps)方法执行。
关于javascript - Prop 返回未定义,但我可以在控制台中看到其值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46447126/