diff --git a/README.md b/README.md
index 4647b9cdf3..7019a6a1ee 100644
--- a/README.md
+++ b/README.md
@@ -54,6 +54,7 @@
- [`useSpring`](./docs/useSpring.md) — interpolates number over time according to spring dynamics.
- [`useTimeout`](./docs/useTimeout.md) — returns true after a timeout.
- [`useTween`](./docs/useTween.md) — re-renders component, while tweening a number from 0 to 1. [![][img-demo]](https://codesandbox.io/s/52990wwzyl)
+ - [`useUpdate`](./docs/useUpdate.md) — returns a callback, which re-renders component when called.
- [**Side-effects**](./docs/Side-effects.md)
diff --git a/docs/useUpdate.md b/docs/useUpdate.md
new file mode 100644
index 0000000000..9f9549efe1
--- /dev/null
+++ b/docs/useUpdate.md
@@ -0,0 +1,21 @@
+# `useUpdate`
+
+React utility hook that returns a function that forces component
+to re-render when called.
+
+
+## Usage
+
+```jsx
+import {useUpdate} from 'react-use';
+
+const Demo = () => {
+ const update = useUpdate();
+ return (
+ <>
+
Time: {Date.now()}
+
+ >
+ );
+};
+```
diff --git a/src/__stories__/useUpdate.story.tsx b/src/__stories__/useUpdate.story.tsx
new file mode 100644
index 0000000000..b445f3c261
--- /dev/null
+++ b/src/__stories__/useUpdate.story.tsx
@@ -0,0 +1,21 @@
+import {storiesOf} from '@storybook/react';
+import * as React from 'react';
+import {useUpdate} from '..';
+import ShowDocs from '../util/ShowDocs';
+
+const Demo = () => {
+ const update = useUpdate();
+ return (
+ <>
+