【发布时间】:2021-06-01 05:53:47
【问题描述】:
我有点问题。我正在为我网站的一个部分使用反应上下文 api。 它是一种形式,然后每个选择都会调用一个 react-query 突变(我不必进行突变)。
出现问题是因为当用户进行选择时,它会添加到深度嵌套的上下文状态对象中。所以,我喜欢 3 个动作来更新这个深度嵌套的状态.. 即,输入/复选框/下拉菜单......但是在每个动作之后,我需要触发这个突变,然后用价格更新状态......
我在将此 api(突变)集成到此上下文 api 中时遇到问题。任何建议..即..
--- user clicks checkbox
------- update context state inside a deeply nested object
----------- ** Need to fire an api WITH this update state (the whole object) **
--------------- response from API updates this state with an updated price
--- user selects dropdown
------- update context state inside a deeply nested object
----------- ** Need to fire an api WITH this update state (the whole object) **
--------------- response from API updates this state with an updated price
问题出现了,除非我使用这个“深度嵌套对象”,否则我使用 useEffect 进入组件内部的无限循环,但由于它是嵌套的,它永远不会“更新”......所以它只会触发一次。
您更新上下文 api 状态的策略是什么,然后基于该状态触发一个 API,然后“更新状态”...
【问题讨论】:
-
但由于它是嵌套的,它永远不会“更新”——如果我理解正确的话,你是在直接改变上下文值,而不是每次都返回一个新对象。对吗?
标签: reactjs react-context react-query