reactjs 可以从useLocation中使用location.state来存储不同路由之间的数据吗?[关闭]

vqlkdk9b  于 5个月前  发布在  React
关注(0)|答案(1)|浏览(82)

已关闭。此问题需要更多focused。目前不接受回答。
**要改进此问题吗?**更新此问题,使其仅针对editing this post的一个问题。

2天前关闭。
Improve this question
我正在Remix中构建一个调查问卷,并希望在路由之间持久化数据。我只希望在整个调查问卷的末尾提交完整的表单。我现在使用的方法是使用useLocation()location.state属性临时存储数据(我读到实际上也使用会话存储(link))
我的方法:
我已经创建了如下路由:问题1的parent-route/answer/1,问题2的parent-route/answer/2等等。
对于最后一个问题,我使用相同路由的action方法将值存储到数据库中,但在中间,我使用useLocation状态和新问题编号的重定向。
问题:
1.我的问题是,这种方法是否适合在路由之间临时存储值,或者是否有其他好的解决方案?
1.我不确定历史对象是否应该用于此目的,但这很好。如果用户使用浏览器的后退/前进按钮,是否会有影响?我现在看不到。
Tia

gr8qqesn

gr8qqesn1#

我个人不会用这种方法传递答案信息,感觉有点支离破碎。
如果这是我,我会开始使用React's Context API创建一个<AnswerProvider>,我在组件树中加载得非常高,可能就像加载问卷一样,并且对于每个给出的答案,我会使用它来存储答案。在问卷结束时,您可以从<AnswerProvider>中获取所有数据并提交它。
上下文API是“全局状态管理”的一种形式。它的设置和使用比Redux之类的系统要简单得多。您可以考虑其他全局状态管理系统:mobx,zustrand等。

相关问题