当前位置: 首页 > 知识库问答 >
问题:

React:setState不再呈现页面[重复]

劳研
2023-03-14

我在与反应和生命周期作斗争。我尝试实现一个非常简单的Next按钮,它显示下一个页面和下一组项。当我手动将状态偏移量更改为3时,页面将与下一项一起正确呈现。但是当我通过使用按钮使用setState时,新项不会加载。我想这和生命周期有关,但我还不明白。

class EventsListContainer extends React.Component {
  state = {
    limit: 3,
    offset: 0
  };

  componentDidMount() {
    const { loadEvents } = this.props;
    const { limit, offset } = this.state;
    loadEvents(limit, offset);
  }

  onClickHandler = () => {
    this.setState({ limit: 3, offset: 3 });
    const { limit, offset } = this.state;
    loadEvents(limit, offset);
  };

  render() {
    const { events, isLoggedIn } = this.props;

    return (
      <div>
        <EventsList events={events} isLoggedIn={isLoggedIn} />
        <Button onClick={() => this.onClickHandler()}>Next</Button>
      </div>
    );
  }
}

共有1个答案

贲招
2023-03-14

setstate的调用是异步的。您可以通过添加回调来修复它。

this.setState({ limit: 3, offset: 3 }, () => loadEvents(this.state.limit, this.state.offset));
 类似资料:
  • 我要求在JSF2.2页面上输入2个输入值。我们正在使用Primefaces控件。然后通过h:command按钮将这些值提交给托管bean方法。 然后,基于这些值,我想将同一JSF页面上的一个单独的输出字段设置为一个特定的值。 因此,我目前的问题是尝试连接一个托管bean,以便它将一个值返回到我的JSF页面上的字段,在本例中,字段名是mgrs。主要的问题是,我要处理的是生成返回值的第三方库,我不确定

  • 问题内容: 我正在使用react-router寻找一种更新页面URL /哈希的方法,而无需路由器重新渲染整个页面。 我正在开发一个全页轮播,并且希望每个幻灯片都有其自己的URL(允许用户刷新页面并返回正确的幻灯片)。转盘稍后将进行类似于此演示的滑动,这意味着 下 一张幻灯片已预渲染。 我的旋转木马的精简版在这里提供。 当前的幻灯片更改如下所示: 这可以正常工作,没有URL更新。我真正想要的是: 这

  • 我正在使用PhantomJS进行网页截图。 我看到过其他关于@font-face问题的帖子,但我页面上的字体呈现正确。我唯一的问题是,每次截图时,字体显示与前一个截图略有不同。所以尽管他们的渲染是正确的,但他们在截图上的外观是不一致的。 我已经尝试了许多修复,大多数都是基于这样的假设,即这与页面准备好之前拍摄的截图有关,但这似乎不是问题所在。例如,我已经延迟了截图,以便字体有时间加载和呈现,但这并

  • 以下是我的观点: 任何我的用户。java: 因此,当我在Name字段中键入一些内容并单击提交时,我希望看到带有id“问候语”的outputText,因为user.name渲染()应该返回true。 但是,我需要在提交名称后刷新页面才能看到它。为什么可能是原因?为什么它需要页面刷新?没有页面刷新我怎么能做到呢?

  • 我使用JasperReports为使用两个独立查询的web应用程序生成一个图和表。我的主JRXML生成图形,并在详细信息带中包含一个子报表来生成表。但是,当它呈现时,子报表似乎被呈现多次(确切地说是12次),这导致生成的报表在12页上是相同的图和表(彼此完全重复)。这可以通过在线应用程序和iReport实现。 呈现代码: