【发布时间】:2021-09-16 14:49:14
【问题描述】:
最近我决定将我的代码从类更改为功能组件。我正在使用 redux、axios 和 axiosMiddleware。自从我开始改用功能组件后,我发现了一些奇怪的东西。请参阅以下示例,该示例是使用调度的请求(我正在使用 connect 和 mapDispatchToProps):
const getUserActivity = () => {
await props
.get(displayDateString)
.then((response) => {
console.log(response); //prints response
console.log(props.activity); //prints part of the redux that should be updated
})
.catch((error) => console.log('error ' + error));
}
const mapDispatchToProps = (dispatch) => ({
get: (date) => dispatch(ActivityReportActions.get(date))
})
我的问题是,当我在“then”之后得到响应时,redux 不会立即更新,只是之后。 “console.log(props.activity)” 打印之前的状态,在某些情况下,我更喜欢在响应之后立即访问 redux。有谁知道为什么这发生在功能组件而不是类组件中?如果是,是否有不需要使用 useEffect() 的解决方案?
谢谢!
【问题讨论】:
标签: javascript reactjs react-native redux