2015-11-02 5 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; 

Не считаю, что это родитель ребенок общение, это как стоять в комнате и видеть от ограждающих стен, где вы .. это не контейнер (родитель), сообщающий вам (ребенку), а ребенок понимает контекст.

Используйте это, как вы можете, однако, отметить, что он является частью реагирования на внутренний экземпляр и может быть изменен (верьте, что он достаточно стабилен на сегодняшний день).

Извинения за формирование формы, на мобильных устройствах.

+2

Я не уверен, что это обязательно лучше, но я отправлю его здесь, если это поможет кому-то: 'this._reactInternalInstance._currentElement._owner.getName()' – animatedgif

Смежные вопросы