2015-11-02 81 views
3

我想要在子组件内部获取父组件名称,以便在验证该子组件的属性时显示错误消息。 我创建了一个可重用的组件,所以任何人都可以在组件内使用我的组件。当他们使用我的组件时,我想用父组件的名称显示警告消息。React Access父组件名称

是否有一个特定的方法来获取父母名称的反应。任何形式的帮助,将不胜感激。

回答

0

你描述的是父母的孩子沟通,只是父名传递到使用props

+0

事情是我不知道会是什么父母的名字。我创建了一个可重用组件,所以任何人都可以在组件内使用我的组件。当他们使用我的组件时,我想用父组件的名称显示警告消息。它可以达到目的吗? –

+1

唯一的解决方案是传递名称与道具。 – TIJ

+0

你可以做的是在将它们渲染到父组件之前更新子道具。通过这种方式,您可以将信息传递给可重用组件,而无需儿童意识到。看到这个答案:http://stackoverflow.com/questions/32370994/how-to-pass-props-to-this-props-children我相信这正是你想要实现 –

5

孩子们可以看到他们是通过this._reactInternalInstance._currentElement._owner._instance.__proto__.constructor.name组成的上下文中的孩子。

用于以下方式:

import React, { Component } from 'react'; 
class Warning extends Component { 
    render() { 
    return (
     <div> {"WARNING: " + this._reactInternalInstance._currentElement._owner._instance.__proto__.constructor.name + " has an error."} 
     </div> 
    ) 
    } 
} 

export default Warning; 

不相信这是父子沟通,它就像站在一个房间,看到从墙壁包含你在哪里..这是不是容器(父)传达给你(孩子),而是孩子是情境感知。

使用这种方式你可能会注意到它是反应内部实例的一部分,并且可能会发生变化(确信它现在已经足够稳定了)。

道歉为formmatting,在手机上。

+2

我不知道这是必须更好,但我会在这里发布它,以防止他人帮助: 'this._reactInternalInstance._currentElement._owner.getName()' – animatedgif