私は withReducer HOC を使用していますが、この動作に気付きました: たとえば、クリック ハンドラーでこれを呼び出す:
import React from 'react'
import { withReducer } from 'recompose'
import { compose } from 'ramda'
export default compose(
withReducer('state', 'dispatch', (state, { value }) => {
console.log(value)
return { ...state, value }
}, { value: 'zero' })
)((props) => {
const { dispatch, state } = props,
onClick = () => {
console.log('Hello')
dispatch({ value: 'one' })
dispatch({ value: 'two' })
dispatch({ value: 'three' })
console.log('World')
}
return (
<div>
<div>{state.value}</div>
<button onClick={onClick}>Click me</button>
</div>
)
})
それは生成します
こんにちは
世界
1
2
三
これは、reduce 関数が非同期で呼び出されることを意味します。変更をすぐに保存するのではなく、非同期と呼ぶ正当な理由は何ですか?