Reactjs 如何独立地更新React类组件中的多个子状态?

Reactjs 如何独立地更新React类组件中的多个子状态?,reactjs,react-state,react-class-based-component,Reactjs,React State,React Class Based Component,我知道如何使用功能组件来实现。但说到类组件,我有几个问题需要澄清 我在这里上课 class MyTable extends Component { constructor(props) { super(props); this.state = { page:0, rowsPerPage:10 } } handleChangePage(event) { //Here I want to

我知道如何使用功能组件来实现。但说到类组件,我有几个问题需要澄清

我在这里上课

class MyTable extends Component {
   constructor(props) {
      super(props);
       this.state = {
          page:0,
          rowsPerPage:10
       }
   }

   handleChangePage(event) {
      //Here I want to update only **page** keeping **rowsPerPage** intact
   }

   handleChangeRowsPerPage(event) {
      //Here I want to update only **rowsPerPage** keeping **page** intact
   }

   render() {
      return(
         <SomeComponent
           onChangePage={this.handleChangePage}
           onChangeRowsPerPage={this.handleChangeRowsPerPage}
         />
      )
   }
}
export default Mytable;
类MyTable扩展组件{
建造师(道具){
超级(道具);
此.state={
页码:0,
rowsPerPage:10
}
}
handleChangePage(事件){
//这里我只想更新**页面**保持**行页面**完整
}
handleChangeRowsPerPage(事件){
//这里我只想更新**行页面**保持**页面**完整
}
render(){
返回(
)
}
}
导出默认Mytable;
我想知道的是

  • 如果我只想更新state对象内部的页面,我是否必须保留行页面,并将它们作为
    this.setState({page:,rowsPerPage:);
    反之亦然

  • 如果我们可以更新状态对象内的独立属性,那么handleChangePagehandleChangeRowsPerPage中的代码是什么

  • 当我们有几个这样的状态,并且希望独立地更新每个状态时,最佳实践是什么


  • 你可以像我下面所说的那样,独立地更新
    页面
    行页面
    。你只需调用
    this.setState
    ,并使用要更新状态的
    键传递和对象

    类MyTable扩展了React.Component{
    建造师(道具){
    超级(道具);
    此.state={
    页码:0,
    rowsPerPage:10
    }
    this.handleChangePage=this.handleChangePage.bind(this);
    this.handleChangeRowsPerPage=this.handleChangeRowsPerPage.bind(this);
    }
    handleChangePage(事件){
    //这里我只想更新**页面**保持**行页面**完整
    this.setState({page:event.target.value});
    }
    handleChangeRowsPerPage(事件){
    //这里我只想更新**行页面**保持**页面**完整
    this.setState({rowsPerPage:event.target.value});
    }
    render(){
    返回(
    页
    划船
    )
    }
    }
    ReactDOM.render(,document.getElementById('root');