gpt4 book ai didi

reactjs - 如何强制从 mapStateToProps 内部进行更新?

转载 作者:行者123 更新时间:2023-12-05 04:11:53 25 4
gpt4 key购买 nike

我说的是 connectmapStateToProps 参数.

我的一个组件有一个名为 rules 的属性,它是一个函数数组。在 mapStateToProps 中,我调用这些规则,传入当前状态。规则要么返回错误消息,要么返回 true(如果没有错误)。我将这些错误消息放入一个新的 prop 中,以便最终组件接收错误消息数组而不是函数数组。

到目前为止这一切都很好,但现在我想添加对异步规则的支持。我现在的计划是,每当规则返回一个 Promise 而不是错误字符串时,我都会将一条消息(如“正在检查...”)推送到错误消息数组中,但是一旦 promise 得到解决,我就需要“刷新”此数组并插入已解析的消息。

我想我能不能force an update然后 redux 将不得不再次调用 mapStateToProps。在这种情况下,所有规则都将被重新评估,但如果我不小心,我会收到一个新的 Promise,它会立即回到原点。 但是, 如果我记住这些规则,那么我可以取回与以前相同的 Promise 实例,然后 check if it's settled然后将该值放入我的错误数组中。

所以现在唯一的问题是弄清楚如何在 mapStateToProps 的上下文中获取对组件实例的引用,它只能访问当前状态和 Prop 。

一旦我的 Promise 已解决,有什么方法可以强制重新渲染?

或者,如果我可以在解决后调度一个 Action ,我也可以使用它。

最佳答案

你不能在 mapState 中这样做。 mapState 函数旨在完全同步。如果您需要执行一些异步操作,请在 mapState 之外触发它,在状态中存储一些值,并使用结果更新它们以强制 mapState 重新运行。

关于reactjs - 如何强制从 mapStateToProps 内部进行更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41881331/

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