无法从子组件更新状态

时间:2019-08-23 08:21:08

标签: javascript reactjs

分页状态组件我移到父组件。

页面上的分页currentPage状态更改应更新,但现在不更新。

currentPage-国家/地区处于本地状态时,它的工作方式如下:

class Pagination extends React.Component {

   state = {
      currentPage: 1,
    };

  componentDidMount() {
    this.gotoPage(1);
  }

  gotoPage = (page) => {
    const { onPageChanged = (f) => f } = this.props;
    const { totalPages, totalRecords } = this.state;

    const currentPage = Math.max(0, Math.min(page, totalPages));
    const paginationData = {
      currentPage,
      totalPages,
      totalRecords
    };
    this.setState({ currentPage }, () => onPageChanged(paginationData));
  };

在这种情况下,状态已更新。

现在我向下传递updatePaginationPage函数以更新状态:

 gotoPage = (page) => {
    const { updatePaginationPage } = this.props;
    const { totalPages } = this.state;

    const currentPage = Math.max(0, Math.min(page, totalPages));

    () => updatePaginationPage(currentPage);
  };

updatePaginationPage功能的外观如下:

 updatePaginationPage = (currentPage) => {
    this.setState({ currentPage }, () => this.onPageChanged(currentPage));
  };

与以前相同,但状态未更新。

为什么状态没有更新?

1 个答案:

答案 0 :(得分:4)

更改:

gotoPage = (page) => {
    ...
    () => updatePaginationPage(currentPage);
};

收件人:

gotoPage = (page) => {
    ...
    updatePaginationPage(currentPage);
};