Firing the blur event when a component unmounts
If an input is focused and a React component containing that input unmounts, then the blur event for that input will not fire. If you use the `blur` event to save the contents of the input then you are in trouble.
You can know what input/select on the page currently has the focus with `document.activeElement`. Combine that with the component lifecycle method `componentWillUnmount()` to fire `blur` for the currently focused element on unmount.
``` javascript
componentWillUnmount() {
const input = document.activeElement()
input.blur()
}
```
The documentation for `activeElement` says it may return `

` or `null` when there is no active element, so you need to protect against that.
``` javascript
componentWillUnmount() {
const input = document.activeElement()
if (input) {
input.blur()
}
}
```
chriserin
March 28, 2018