Обновлено: 2018-Dec
Новая версия react-hot-loader
вышла, ссылка .Крючки теперь работают из коробки.Спасибо автору, Каше.
Проверьте этот шаблон https://github.com/ReeganExE/react-hooks-boilerplate
- React Hooks
- React Hot Loader
- Webpack, Babel,ESLint Airbnb
Предыдущий ответ:
Сначала убедитесь, что вы установили react@next
и react-dom@next
.
Затем проверьте,используете react-hot-loader
или нет.
В моем случае отключите горячий загрузчик и HMR может заставить его работать.
См. https://github.com/gaearon/react-hot-loader/issues/1088.
Цитата:
Да.БРЗ на 100% не совместимо с крючками.Это объясняется всего несколькими причинами:
SFC преобразуются в компоненты класса.Есть причина - иметь возможность принудительного обновления на HMR, пока на SFC нет метода «обновления».Я ищу другой способ принудительного обновления (как это. Таким образом, RHL убивает SFC.
"hotReplacementRender". RHL пытается выполнить работу React и отрисовать старое и новое приложение, чтобы объединить ихИтак, очевидно, что сейчас это не работает.
Я собираюсь составить PR, чтобы смягчить обе проблемы. Он будет работать, но не сегодня.
Есть более правильноеисправление, которое работало бы - холодный API
Вы можете отключить RHL для любого пользовательского типа.
import { cold } from 'react-hot-loader';
cold(MyComponent);
Поиск "useState/useEffect"
в исходном коде компонента и "cold "it.
Обновлено:
В соответствии с обновлено от сопровождающего реактора-загрузчика, вы можете попробовать react-hot-loader@next
и установить конфигурацию следующим образом:
import { setConfig } from 'react-hot-loader';
setConfig({
// set this flag to support SFC if patch is not landed
pureSFC: true
});
Спасибо @loganfromlogan за обновление.