2016-07-20 3 views
0

Я бы хотел вызвать функцию повторно в компоненте React с момента ее установки до тех пор, пока он не размонтирует и не запустит его с помощью webpack HMR (горячая перезагрузка).setInterval в компонентах React и горячей перезагрузке (Webpack)

Самый простой способ установить интервал в componentDidMount, как предложено в ReactJS документы: [1]: https://facebook.github.io/react/docs/component-specs.html#mounting-componentdidmount

componentDidMount() { 
    const number = Math.floor(Math.random() * 1000) + 1 
    setInterval(() => console.log('Component ' + number.toString()), 5000) 
} 

Я искал, но не может найти решение, чтобы очистить интервал перед тем WebPack HMR вызывает componentDidMount для нашего обновленного компонента. Это означает, что у нас есть новый интервал при каждом перезагрузке модуля.

Примечание: componentWillUnmount не вызывается до Webpack rebundles

UPDATE: Rebundling должен вызывать componentWillUnmount когда HMR правильно установлен

Что является лучшим способом для достижения повторной отсроченной функции вызывает с WebPack ГМРОМ?

+0

componentWillUnmount – webdeb

+0

Проблема в том, что 'componentWillUnmount' не называется до того, как веб-пакет будет возвращен. –

ответ

0

Извините, я просто понял, что проблема связана с моей реализацией веб-пакета HMR, которая явно не размонтировала горячие маршруты.

Вы можете проверить это совершить, если вам случится иметь один и тот же вопрос, посмотрите на SRC/main.js дифф файл: https://github.com/davezuko/react-redux-starter-kit/commit/a602625b20ade172c829b583882ae44c150e738c