Оновлено: 2018-груд
react-hot-loader
Зараз вийшла нова версія , посилання . Гачки зараз працюють нестандартно. Дякую автору, Каші.
Ознайомтеся з цим типовим шаблоном https://github.com/ReeganExE/react-hooks-boilerplate
- Гаки для реагування
- Гарячий навантажувач React
- Webpack, Babel, ESLint Airbnb
Попередня відповідь:
Спочатку переконайтеся, що ви встановили react@next
таreact-dom@next
.
Тоді перевірте, react-hot-loader
чи використовуєте ви чи ні.
У моєму випадку вимкніть гарячий завантажувач, і HMR може змусити його працювати.
Див. Https://github.com/gaearon/react-hot-loader/issues/1088 .
Цитується:
Так. RHL на 100% не сумісний з гачками. За цим є лише кілька причин:
SFC перетворюються на компоненти класу. Є причина - мати можливість примусово оновити HMR, поки на SFC не існує методу "оновлення". Я шукаю інший спосіб примусового оновлення (наприклад, так. Тож RHL вбиває SFC.
"hotReplacementRender". RHL намагається виконати роботу React та відтворити стару та нову програму, щоб об'єднати їх. Тож, очевидно, зараз це зламано.
Я збираюся скласти PR, щоб пом'якшити обидві проблеми. Це спрацює, але не сьогодні.
Існує більш правильне виправлення, яке могло б працювати - холодний API
Ви можете вимкнути RHL для будь-якого нестандартного типу.
import { cold } from 'react-hot-loader';
cold(MyComponent);
Шукайте "useState/useEffect"
всередині вихідного коду компонента і "холодно" його.
Оновлено:
Відповідно до оновлення, яке додав реагент-гарячий завантажувач, ви можете спробувати react-hot-loader@next
встановити конфігурацію нижче:
import { setConfig } from 'react-hot-loader';
setConfig({
pureSFC: true
});
Дякуємо @loganfromlogan за оновлення.