Reactjs 将状态从组件传递到父级

Reactjs 将状态从组件传递到父级,reactjs,Reactjs,如果您有一个包含表组件的列表页面: class ListingPage extends Component { static propTypes = { getTableData: PropTypes.func.isRequired, }; componentDidMount() { this.props.getTableData(*I want to Pass in sortlist state here*); } render() {

如果您有一个包含表组件的列表页面:

class ListingPage extends Component {
 static propTypes = {
    getTableData: PropTypes.func.isRequired,  
  };

componentDidMount() {
         this.props.getTableData(*I want to Pass in sortlist state here*);   

  }

render() {
    return (
      <div> 
 <Table />
     </div>

}

表组件中的
sortlist
通过各种功能进行更改。如何将该
sortlist
状态传递到
ListingPage
组件?

将一个函数从
ListingPage
传递到
,每当
sortlist
更改时调用该函数

ListingPage组件:

类列表页扩展组件{
静态类型={
getTableData:PropTypes.func.isRequired,
};
港口更改{
控制台日志;
}
render(){
返回(
此.onSortChange}/>
);
}
}
表组件:

类表扩展组件{
建造师(道具){
超级(道具);
此.state={
sortlist:'someStringData',
};
}
某些属性正在更改{
此.props.onSortChange;
}
render(){
返回表信息等。;
}
}

将函数从
列表页面
传递到
,每当更改
排序列表
时调用该函数

ListingPage组件:

类列表页扩展组件{
静态类型={
getTableData:PropTypes.func.isRequired,
};
港口更改{
控制台日志;
}
render(){
返回(
此.onSortChange}/>
);
}
}
表组件:

类表扩展组件{
建造师(道具){
超级(道具);
此.state={
sortlist:'someStringData',
};
}
某些属性正在更改{
此.props.onSortChange;
}
render(){
返回表信息等。;
}
}

考虑到上述答案,在这种情况下,当您希望将状态从子级传递到父级时,也可以使用redux存储。进行操作调用,将状态存储在redux存储中,并在父组件中获取状态。这是从子组件播放到父组件的另一种方式

this.props.saveToStore(this.state.sortlist);
在您的操作文件中

cost SAVE_TO_STORE = “SAVE_TO_STORE”;

export function saveToStore(sortlist){
     return {
          type: SAVE_TO_STORE,
          sortlist
      }
   }

与在reducer中存储状态一样,在父组件中获取状态并作为props返回,即在MapStateTrops(状态,props)函数中使用redux connect方法。

考虑到上述答案,在这种情况下,当您希望将状态从子组件传递到父组件时,也可以使用redux store。进行操作调用,将状态存储在redux存储中,并在父组件中获取状态。这是从子组件播放到父组件的另一种方式

this.props.saveToStore(this.state.sortlist);
在您的操作文件中

cost SAVE_TO_STORE = “SAVE_TO_STORE”;

export function saveToStore(sortlist){
     return {
          type: SAVE_TO_STORE,
          sortlist
      }
   }

类似于减速器中的存储状态,在父组件中获得状态并返回为道具,即使用ReDuxConnect方法在MAPSTATOSTPROPS(状态、道具)函数中。

您应该使用上面例子中存在的回调PROP,或者您可以考虑使用ReDux。在button组件中,您可以分派更改Redux状态的操作,并将新的道具传递给父组件。但是,在这种情况下,您将在道具中使用数据,而不是在复合状态下。您应该使用上述示例中的回调PROP,或者可以考虑使用ReDux。在button组件中,您可以分派更改Redux状态的操作,并将新的道具传递给父组件。但在这种情况下,您的数据将以道具形式存在,而不是以复合状态存在。