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