【发布时间】:2023-04-07 21:14:01
【问题描述】:
我有这段代码:
const [hDate, dispatch] = useReducer(hDateReducer, initialHDate)
const onChange= (field) => {
dispatch({ type: field.id, value: Number.parseInt(field.value) })
const h_date_str = hDate.year+'/'+hDate.month+'/'+hDate.day
setTimeout(function(){ props.onChange(h_date_str) }, 3000);
}
传递给父级的值总是比我当前的调度慢一步。即使我添加了超时,我仍然得到相同的结果。有什么办法可以处理setReducer(也是setState)的同步性?
【问题讨论】:
-
你已经获得了价值,延迟调用 props.onChange 将无济于事。也就是说,我不知道答案..
this.setState有一个我们可以使用的回调,但他们把它从我们手中夺走了。 -
为什么父级不使用状态容器中的值?有两种传递它的方法似乎很奇怪(通过状态容器和通过回调)。
-
是的,我已经得到了这个值,但是当我将它传递给父级时,我得到了旧的!
-
@jonrsharpe 我使用的钩子既没有 redux 也没有容器模式
标签: reactjs react-hooks reducers