gpt4 book ai didi

javascript - 如何访问 redux 中 mapDispatchToProps 中的全局状态?

转载 作者:行者123 更新时间:2023-12-04 02:13:33 24 4
gpt4 key购买 nike

我想发送一个操作来更新我的应用程序的全局状态与当前登录的用户。当用户单击按钮时,将触发在 mapDispatchToProps 中注册的事件处理程序,然后我想分派(dispatch)一个操作 (article.updateAuthor(currentUser))。但是,在 mapDispatchToProps 中,我无权访问状态以获取当前用户,并且我不想随意将当前登录的用户传递给组件 Prop ——只传递给点击上面的事件,然后将用户数据传递给调度的操作。

我知道我可以使用 redux thunk 发送一个 Action ,这让我可以访问状态。但是,由于没有进行任何 API 调用,这看起来相当笨拙。

有没有人遇到过这个问题?

最佳答案

connect react-redux 提供的函数,您可以使用四个可选参数:

  • mapStateToProps
  • mapDispatchToProps
  • mergeProps(这个会给你你想要的)
  • 选项

来自 mergeProps 的文档:

If specified, it is passed the result of mapStateToProps(), mapDispatchToProps(), and the parent props. The plain object you return from it will be passed as props to the wrapped component. You may specify this function to select a slice of the state based on props, or to bind action creators to a particular variable from props

因此,在您的情况下,您将使用 mapStateToProps 来访问您需要的全局状态的任何部分。结果将作为 stateProps 参数传递给 mergeProps

mergeProps 中做你需要对这个状态做的事情,使用 dispatchProps 的结果(或从中解构 dispatch)并返回您要连接的组件中需要的对象。

关于javascript - 如何访问 redux 中 mapDispatchToProps 中的全局状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44292400/

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