Vynutit komponentu React k opětovnému vykreslení

Krása komponent React spočívá v tom, že se automaticky vykreslují a aktualizují na základě změny v state nebo props; jednoduše aktualizujte stav z libovolného místa a najednou se váš prvek uživatelského rozhraní aktualizuje – úžasné! Může však nastat případ, kdy prostě chcete hrubou silou vynutit nový render komponenty React.

Poznámka:  Ve většině případů byste nikdy neměli nutit komponentu React k opětovnému vykreslení; opětovné vykreslení by mělo být vždy provedeno na základě změn stavu nebo rekvizit. Nicméně to nesoudím a může nastat případ, kdy zákonitě potřebujete přinutit komponentu React, aby se znovu vykreslila, takže pojďme na to!

Vynutit vykreslení komponenty React

Existuje několik způsobů, jak vynutit vykreslení komponenty React, ale jsou v podstatě stejné. První používá this.forceUpdate() , který přeskočí shouldComponentUpdate :

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

Za předpokladu, že vaše komponenta má state , můžete také zavolat následující:

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

Tento blog si neklade za cíl být normativní, takže nebudu nadávat vývojářům za použití této metody hrubé síly. Opět pravděpodobně existuje lepší, více "React-y" způsob, jak komponentu správně vykreslit, ale pokud zoufale toužíte po vykreslení komponenty na příkaz, existuje mnoho způsobů, jak toho dosáhnout pomocí React.