我正在使用 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>
)
})
它会产生
你好
世界
一
二
三
这意味着reduce函数是异步调用的。将其称为异步而不是立即将更改应用于存储的理由是什么?