reactjs - Hot reload renderar om hela sidan om komponenten är sammansatt med HOC:er
Jag försöker sätta upp hot module replacement på ett typescript/react/react-router v4/redux projekt. Jag försöker använda react-hot-loader för att behålla React-komponenters tillstånd. Det fungerar med enkla komponenter, men det slutar fungera (renderar om hela appen istället för den ändrade delen) när jag använder HOC på komponenten, t.ex. withRouter HOC:
import * as React from "react";
import * as ReactRouter from 'react-router';
export default ReactRouter.withRouter(class Test extends React.Component<undefined, undefined> {
render() {
return <div>:)</div>
}
});
Jag hittade en lösning i den här artikeln, att det fungerar när du inte komponerar hoc's.
import * as React from "react";
import * as ReactRouter from 'react-router';
class Test extends React.Component<undefined, undefined> {
render() {
return <div>:)</div>
}
}
export default ReactRouter.withRouter(Test);
Detta är ett mycket förenklat exempel, men det är en dålig lösning, eftersom det finns många platser där jag faktiskt har komponerade HOC:er, som connect HOC för att koppla komponenten till redux-butiken och andra. Det känns fel, eftersom man måste tyst veta att man inte kan göra det, och någon annan kanske inte vet det.
Min fråga är: finns det en riktig lösning för att kunna använda react-hot-loader och hoc's?