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状态的操作,并将新的道具传递给父组件。但在这种情况下,您的数据将以道具形式存在,而不是以复合状态存在。