将UseState从子组件传递到父组件?

时间:2020-10-30 01:40:52

标签: javascript reactjs react-hooks react-props

我正在尝试将useState Hook中定义的状态“区域”传递给父元素。我不确定要在哪里放置单词区域吗?

这是子元素

.prototype

这是父元素:

jay.prototype

1 个答案:

答案 0 :(得分:1)

将UseState从子组件传递到父组件?

不,你不应该。这是React的Data Flows Down的反模式。

如果您希望父组件和子组件都使用region状态,则应改为lift state up

class Parent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      region: 'Africa' // region is owned by Parent component
    }
  }

  // class field syntax
  updateRegion = (region) => {
    this.setState({ region });
  }

  render() {
     // Pass region state down as prop
     // Also provide an updater function for setting region in child component
     return (
       <div id="search_dropdown">
         <Menu updateRegion={this.updateRegion} region={this.state.region} />
       </div>
     );
  }
}