Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit002e3bd

Browse files
authored
Merge pull request#25 from rjz/feature/compose
Demos compose() utility
2 parentse3ccfba +0702f27 commit002e3bd

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

‎src/api.ts‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,21 @@ const flakify = <T>(f: () => T): Promise<T> =>
1818
},200+Math.random()*2000)
1919
)
2020

21+
typeCounter={
22+
value:number,
23+
}
24+
2125
exporttypeApi={
22-
save(x:{value:number}):Promise<null>,
23-
load():(Promise<{value:number}>),
26+
save(x:Counter):Promise<null>,
27+
load():(Promise<Counter>),
2428
}
2529

2630
exportconstapi:Api={
27-
save:(counter:{value:number}):Promise<null>=>flakify(()=>{
31+
save:(counter:Counter):Promise<null>=>flakify(()=>{
2832
localStorage.setItem('__counterValue',counter.value.toString())
2933
returnnull
3034
}),
31-
load:():Promise<{value:number}>=>flakify(()=>{
35+
load:():Promise<Counter>=>flakify(()=>{
3236
conststoredValue=parseInt(localStorage.getItem('__counterValue'),10)
3337
return{
3438
value:storedValue||0,

‎src/index.tsx‎

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import*asReactfrom'react'// tslint:disable-line
1+
import*asReactfrom'react'
22
import*asReactDOMfrom'react-dom'
33
import*asreduxfrom'redux'
44
import{Provider}from'react-redux'
@@ -8,18 +8,19 @@ import * as state from './reducers'
88

99
import{Counter}from'./components/counter'
1010

11-
letstore:redux.Store<state.All>=redux.createStore(
11+
conststore:redux.Store<state.All>=redux.createStore(
1212
state.reducers,
1313
{}asstate.All,
1414
redux.applyMiddleware(thunk),
1515
)
1616

17-
// Commented out ("let HTML app be HTML app!")
17+
constRoot:React.SFC<{}>=()=>(
18+
<Providerstore={store}>
19+
<Counter/>
20+
</Provider>
21+
)
22+
1823
window.addEventListener('DOMContentLoaded',()=>{
1924
constrootEl=document.getElementById('redux-app-root')
20-
if(rootEl)ReactDOM.render(
21-
<Providerstore={store}>
22-
<Counter/>
23-
</Provider>
24-
,rootEl)
25+
ReactDOM.render(<Root/>,rootEl)
2526
})

‎src/utils.ts‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import*asReactfrom'react'
2+
3+
typeRC=React.SFC|React.ComponentClass
4+
5+
typeHOC=(C:RC)=>RC
6+
7+
exportconstcompose=(Component:RC, ...hocs:Array<HOC>)=>
8+
hocs.reduce((C,hoc)=>hoc(C),Component)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp