2016-02-22 2 views
0

Я не могу использовать что-то вроде this.refs.child.state в своем приложении для доступа к состоянию дочернего компонента, поэтому вам нужен альтернативный способ сделать это. Основная причина этого заключается в том, чтобы передать дочернее содержимое в состояние redux при нажатии на определенную кнопку внутри такого родительского компонента childs, поэтому функция в родительском компоненте должна передавать содержимое childs в качестве одного из параметров.Доступ к состоянию дочернего компонента другим способом, чем ref?

+0

Почему вы не можете использовать 'refs'? – dandavis

+0

@ dandavis Я не совсем уверен, что честно, я указываю 'ref =" someRef "на мой дочерний компонент, но он не отображается, когда я смотрю его с помощью инспектора. Как я их использую, у меня есть мой ' {this.props.children}', где дети - это другие компоненты. – Ilja

+0

Компоненты @dandavis chlidren, являющиеся одними, я помещаю ref на то, что игнорируется – Ilja

ответ

0

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

var Parent = React.createClass({ 
    onChange: function(childValue){ 
     this.setState({childValue: childValue}); 
    }, 
    render: function(){ 
     return <Child onChange={this.onChange} /> 
    } 
}); 

var Child = React.createClass({ 
    handleChange: function(event){ 
     this.props.onChange(event.target.value); 
    }, 
    render: function(){ 
     return <input onChange={this.handleChange}/> 
    } 
}); 

Добавить как можно больше средних слоев по форме;

var MiddleChildA = React.createClass({ 
    render: function(){ 
     return <MiddleChildB onChange={this.props.onChange} /> 
    } 
}); 
Смежные вопросы