Force a React Component to Re-Render

Publikováno: 7.3.2018

The beauty of React components is that they automagically render and update based on a change in state or props; simply update the state from any place and suddenly your UI element updates — awesome!  There may be a case, however, where you simply want to brute force a fresh render of a React component. […]

The post Force a React Component to Re-Render appeared first on David Walsh Blog.

Celý článek

The beauty of React components is that they automagically render and update based on a change in state or props; simply update the state from any place and suddenly your UI element updates — awesome!  There may be a case, however, where you simply want to brute force a fresh render of a React component.

Note:  In most cases you should never force a React component to re-render; re-rendering should always be done based on state or props changes.  Nonetheless, I don’t judge and there may be a case where you legitimately need to force a React component to re-render so let’s have it!

Force React Component Render

There are multiple ways to force a React component render but they are essentially the same.  The first is using this.forceUpdate(), which skips shouldComponentUpdate:

someMethod() {
    // Force a render without state change...
    this.forceUpdate();
}

Assuming your component has a state, you could also call the following:

someMethod() {
    // Force a render with a simulated state change
    this.setState({ state: this.state });
}

This blog doesn’t aim to be prescriptive, so I wont scold developers for using this brute force method.  Again, there’s likely a better, more “React-y” way to render a component properly, but if you are desperate to get a component render on command, there are many ways to do so with React.

The post Force a React Component to Re-Render appeared first on David Walsh Blog.

Nahoru
Tento web používá k poskytování služeb a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tímto souhlasíte. Další informace