在我详细介绍如何访问子组件的状态之前,请务必阅读Markus-ipse的回答,了解处理此特定场景的更好解决方案。
如果您确实希望访问组件子组件的状态,您可以ref为每个子组件分配一个属性。现在有两种方法可以实现引用:使用引用React.createRef()和回调引用。
使用 React.createRef()
从 React 16.3 开始,这是目前推荐的使用引用的方式(有关更多信息,请参阅文档)。如果您使用的是早期版本,请参阅下面有关回调引用的信息。
您需要在父组件的构造函数中创建一个新引用,然后通过ref属性将其分配给子组件。
class FormEditor extends React.Component {
  constructor(props) {
    super(props);
    this.FieldEditor1 = React.createRef();
  }
  render() {
    return <FieldEditor ref={this.FieldEditor1} />;
  }
}
为了访问这种引用,您需要使用:
const currentFieldEditor1 = this.FieldEditor1.current;
这将返回一个已安装组件的实例,以便您可以使用它currentFieldEditor1.state来访问状态。
快速说明一下,如果您在 DOM 节点而不是组件(例如<div ref={this.divRef} />)上使用这些引用,那么this.divRef.current将返回底层 DOM 元素而不是组件实例。
回调引用
此属性采用一个回调函数,该函数传递了对附加组件的引用。该回调在组件挂载或卸载后立即执行。
例如:
<FieldEditor
    ref={(fieldEditor1) => {this.fieldEditor1 = fieldEditor1;}
    {...props}
/>
在这些示例中,引用存储在父组件上。要在您的代码中调用此组件,您可以使用:
this.fieldEditor1
然后用于this.fieldEditor1.state获取状态。
需要注意的一件事,请确保您的子组件在尝试访问之前已呈现 ^_^
如上所述,如果您在 DOM 节点而不是组件(例如<div ref={(divRef) => {this.myDiv = divRef;}} />)上使用这些引用,那么this.divRef将返回底层 DOM 元素而不是组件实例。
更多信息
如果你想了解更多关于 React 的 ref 属性,请查看Facebook 的这个页面。
确保您阅读了“不要过度使用参考资料”部分,该部分说您不应该使用孩子的资料state来“使事情发生”。