Reactjs 如何访问React组件实例的方法?
有没有办法调用React组件内部定义的方法 我知道我们通常希望通过props/data等声明性地传递值。但是我使用的是一些具有内部有用方法的组件库 乙二醇 这种方法Reactjs 如何访问React组件实例的方法?,reactjs,material-ui,Reactjs,Material Ui,有没有办法调用React组件内部定义的方法 我知道我们通常希望通过props/data等声明性地传递值。但是我使用的是一些具有内部有用方法的组件库 乙二醇 这种方法 在组件中。您不能使用虚拟dom执行此操作,因为虚拟dom只是要创建的组件的描述。只有在渲染时才会创建或更新实际组件实例 但是,渲染后,可以使用以下方法访问react组件内的组件实例: jsbin,上面有代码: var field = <AutoComplete/>; field.setValue("ready");
在组件中。您不能使用虚拟dom执行此操作,因为虚拟dom只是要创建的组件的描述。只有在渲染时才会创建或更新实际组件实例 但是,渲染后,可以使用以下方法访问react组件内的组件实例: jsbin,上面有代码:
var field = <AutoComplete/>;
field.setValue("ready"); // doesn't work
var Test = React.createClass({
getInitialState: function(){
return {value:0};
},
setValue: function(value){
this.setState({value:value});
},
render: function() {
return <div>Value {this.state.value}</div>;
}
});
var App = React.createClass({
render: function() {
return <div>
<Test ref="test"/>
<button onClick={()=>this.refs.test.setValue(1)}>1</button>
<button onClick={()=>this.refs.test.setValue(2)}>2</button>
<button onClick={()=>this.refs.test.setValue(3)}>3</button>
</div>;
}
});
var mountNode = document.getElementById('app');
ReactDOM.render(<App name="John" />, mountNode);