DefinitelyTyped/types/react-copy-write/react-copy-write-tests.tsx
Sam A. Horvath-Hunt cbc9a55269 Add typings for react-copy-write (#27099)
* Add initial types for react-copy-write

* render functions can be `null` and fixes for select prop

`selector` is named `select` now. Also I believe it should take an array of selectors.

* Improve react-copy-write typings; bump min TS to 2.8

* Add additional potential solution in comment

* Make RenderFn args DeepReadonly

* Add state param to `MutateFn`

* Add missing semicolon
2018-07-06 09:50:14 -07:00

31 lines
703 B
TypeScript

import * as React from 'react';
import { render } from 'react-dom';
import createStore from 'react-copy-write';
const { Provider, Consumer, mutate } = createStore({
letter: 'a',
number: 1,
});
const incrementNumber = () => mutate((draft) => {
draft.number++;
});
const App = () => (
<Provider>
<div>
<Consumer>
{state => (
<div>Letter: {state.letter}</div>
)}
</Consumer>
<Consumer render={state => (
<div>Number (<span onClick={incrementNumber}>increment</span>): {state.number}</div>
)} />
</div>
</Provider>
);
render(<App />, document.body);