gpt4 book ai didi

javascript - mapDispatchToProps 应该调度初始化操作吗?

转载 作者:行者123 更新时间:2023-11-29 16:50:19 24 4
gpt4 key购买 nike

假设一个无状态的功能性 UserProfile 组件显示给定 url 的用户数据。假设它被 connect(mapStateToProps, mapDispatchToProps)(UserProfile) 包裹。最后,假设一个缩减为 state.userProfile 的缩减器。每当 url 更改时,我都需要重新初始化 state.userProfile,因此想到的解决方案是从 mapDispatchToProps 中这样做:

function mapDispatchToProps(dispatch, ownProps) {
dispatch(fetchUser(ownProps.userId))
return {
...
}
}

假定 thunked fetchUser 通过与当前状态进行比较而忽略重复调用,这是一种可以接受的做法吗?或者是否存在与从该 map 函数立即调用调度相关的问题?

最佳答案

这是不受支持的,随时可能中断。
mapDispatchToProps 本身不应该有副作用。

如果您需要调度操作以响应 prop 更改,您可以创建一个组件类并为此使用生命周期方法:

class UserProfile extends Component {
componentDidMount() {
this.props.fetchUser(this.props.id)
}

componentDidUpdate(prevProps) {
if (prevProps.id !== this.props.id) {
this.props.fetchUser(this.props.id)
}
}

// ...

}

关于javascript - mapDispatchToProps 应该调度初始化操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36654197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com