Reactjs 如何访问React组件实例的方法?

Reactjs 如何访问React组件实例的方法?,reactjs,material-ui,Reactjs,Material Ui,有没有办法调用React组件内部定义的方法 我知道我们通常希望通过props/data等声明性地传递值。但是我使用的是一些具有内部有用方法的组件库 乙二醇 这种方法 在组件中。您不能使用虚拟dom执行此操作,因为虚拟dom只是要创建的组件的描述。只有在渲染时才会创建或更新实际组件实例 但是,渲染后,可以使用以下方法访问react组件内的组件实例: jsbin,上面有代码: var field = <AutoComplete/>; field.setValue("ready");

有没有办法调用React组件内部定义的方法

我知道我们通常希望通过props/data等声明性地传递值。但是我使用的是一些具有内部有用方法的组件库

乙二醇

这种方法


在组件中。

您不能使用虚拟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);