Aktualisiert: 2018-Dez
Neue Version von react-hot-loader
ist ab sofort erhältlich, Link . Hooks funktioniert jetzt sofort. Vielen Dank an den Autor, theKashey.
Schauen Sie sich diese Boilerplate https://github.com/ReeganExE/react-hooks-boilerplate an
- Haken reagieren
- Hot Loader reagieren
- Webpack, Babel, ESLint Airbnb
Vorherige Antwort:
Stellen Sie zunächst sicher, dass Sie react@next
und installiert haben react-dom@next
.
Überprüfen Sie dann, ob Sie verwenden react-hot-loader
oder nicht.
In meinem Fall könnte das Deaktivieren von Hot Loader & HMR funktionieren.
Siehe https://github.com/gaearon/react-hot-loader/issues/1088 .
Zitiert:
Ja. RHL ist zu 100% nicht mit Haken kompatibel. Dafür gibt es nur wenige Gründe:
SFC werden in Klassenkomponenten konvertiert. Es gibt einen Grund, Update auf HMR erzwingen zu können, solange es auf SFC keine "Update" -Methode gibt. Ich suche nach einer anderen Möglichkeit, das Update zu erzwingen (so. Also tötet RHL SFC.
"hotReplacementRender". RHL versucht, Reacts Arbeit zu erledigen und die alte und die neue App zu rendern, um sie zusammenzuführen. Das ist jetzt offensichtlich kaputt.
Ich werde eine PR entwerfen, um beide Probleme zu entschärfen. Es wird funktionieren, aber nicht heute.
Es gibt eine bessere Lösung, die funktionieren würde - Cold API
Sie können RHL für jeden benutzerdefinierten Typ deaktivieren.
import { cold } from 'react-hot-loader';
cold(MyComponent);
Suchen Sie nach "useState/useEffect"
Quellcode innerhalb der Komponente und "kalt".
Aktualisiert:
Gemäß der Aktualisierung des React-Hot-Loader-Betreuers können Sie versuchen react-hot-loader@next
, die Konfiguration wie folgt festzulegen:
import { setConfig } from 'react-hot-loader';
setConfig({
pureSFC: true
});
Vielen Dank an @loganfromlogan für das Update.