Javascript 是否以ref以外的其他方式访问子组件状态?
我无法在我的应用程序中使用类似于Javascript 是否以ref以外的其他方式访问子组件状态?,javascript,reactjs,Javascript,Reactjs,我无法在我的应用程序中使用类似于this.refs.child.state的东西来访问子组件的状态,因此需要另一种方法来访问。这样做的主要原因是,当在childs父组件中单击某个按钮时,将子内容传递到redux状态,因此父组件中的函数需要传递childs内容作为参数之一。取决于组件的结构(不发布代码时很难判断),你可以通过道具链接回调来解决这个问题。即 var Parent = React.createClass({ onChange: function(childValue){
this.refs.child.state
的东西来访问子组件的状态,因此需要另一种方法来访问。这样做的主要原因是,当在childs父组件中单击某个按钮时,将子内容传递到redux状态,因此父组件中的函数需要传递childs内容作为参数之一。取决于组件的结构(不发布代码时很难判断),你可以通过道具链接回调来解决这个问题。即
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 Parent=React.createClass({
onChange:函数(childValue){
this.setState({childValue:childValue});
},
render:function(){
返回
}
});
var Child=React.createClass({
handleChange:函数(事件){
this.props.onChange(event.target.value);
},
render:function(){
返回
}
});
根据表单的需要添加尽可能多的中间层
var MiddleChildA = React.createClass({
render: function(){
return <MiddleChildB onChange={this.props.onChange} />
}
});
var MiddleChildA=React.createClass({
render:function(){
返回
}
});
为什么不能使用refs
?@dandavis老实说,我不完全确定,我在我的子组件上指定了ref=“someRef”
,但当我使用inspector查找它时,它不会显示。我使用它们的方式是我有我的{this.props.children}
,其中children是其他组件。@dandavis Chidren组件是我放在ref上的那些被忽略的组件。简单的方法是将它们定义在一起并使用闭包,以便生命周期代码可以共享psudeo全局。您可以使用实数globals对子对象或JSX本身中的方法执行或分派()。您还可以订阅父级上的事件并在子级上触发它们,因为事件会冒泡。您也可以使用基于函数的ref=
将孩子身上有趣的elm推到可以到达的地方。@dandavis请您提供扩展的答案和代码示例,因为我不完全理解您的想法(新反应)