mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* 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
31 lines
703 B
TypeScript
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);
|