首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把regex存进Redux商店?

把regex存进Redux商店?
EN

Stack Overflow用户
提问于 2019-09-25 11:32:09
回答 3查看 435关注 0票数 4

如何将regex保存到Redux商店?

示例:

我已将regex保存在对象中:

代码语言:javascript
复制
const regexes = {
   name: /^[a-zA-Z0-9_]*$/
}

将此对象保存到redux存储后,regex将丢失(将其解析为空对象):

代码语言:javascript
复制
// Dispatch
dispatch(setRegexes(regexes))
// Redux Dev Tools:
{
   name: {}
}

Regex即使接收到作为减速机的有效载荷也可以:

代码语言:javascript
复制
// Reducer
case 'SET_REGEXES':
   console.log(payload.regexes) // {name: /^[a-zA-Z0-9_]*$/}
   return {...store, regexes: payload.regexes}
break;

这意味着有效负载很可能是stringified到JSON,而正则表达式丢失了

这有解决办法吗?或者,我不应该将regexes保存到redux中,即使从技术上讲,将regexes保存到JavaScript对象是有效的。

new RegExp(store.regexes.name)编辑:我正在尝试实现不需要使用的情况,我希望将实际的regex保存到存储中,因为存储是JavaScript对象。

EN

回答 3

Stack Overflow用户

发布于 2019-09-26 10:38:44

根据我的评论,这听起来像是一个Redux工具问题,而不是一个Redux问题。

开发工具可能会在登录到控制台之前序列化数据,但是RegExp对象本身应该正确地存储在您的状态中。

是否要在您的状态中存储不可序列化的数据,将基于您自己的上下文和需求。

根据Redux文档:

强烈建议您只将可序列化的简单对象、数组和原语放入存储区。从技术上讲,可以在存储中插入不可序列化的项,但这样做会破坏存储内容的持久化和再水合物的能力,并干扰时间迁移调试。

如果您对持久性和时间旅行调试等可能无法按预期工作的事情感到满意,那么我们完全欢迎您将不可序列化的项放入Redux存储中。最终,这是您的应用程序,以及如何实现它取决于您。与关于Redux的许多其他事情一样,只需确保您了解所涉及的权衡。

来源:https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state

票数 1
EN

Stack Overflow用户

发布于 2019-09-25 11:44:14

可以首先通过RegExp的source属性将其转换为字符串。

代码语言:javascript
复制
case 'SET_REGEXES':
   const regexsrc = regexes.name.source;
   return {...store, regexes: {name: regexsrc}}
break;

或者运行一个循环,如果regexes实际上是一个数组,则转换每个属性。

然后,只需做new RegExp(str)检索。

票数 0
EN

Stack Overflow用户

发布于 2019-09-25 11:50:07

只要将regex转换为字符串即可。

代码语言:javascript
复制
// Reducer
case 'SET_REGEXES':
   console.log(payload.regexes) // {name: /^[a-zA-Z0-9_]*$/}
   return {...store, regexes: payload.regexes.name.toString()} // Convert to string
break;

代码语言:javascript
复制
const regexp1 = /^[a-zA-Z0-9_]*$/
console.log(regexp1.toString())

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58097404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档