Javascript 为什么Redux将我的正则表达式值保存为对象类型
我有了最奇怪的行为。我在表单中使用屏蔽输入:react text mask。如何定义屏蔽输入的快速示例:Javascript 为什么Redux将我的正则表达式值保存为对象类型,javascript,reactjs,redux,Javascript,Reactjs,Redux,我有了最奇怪的行为。我在表单中使用屏蔽输入:react text mask。如何定义屏蔽输入的快速示例: <MaskedInput mask={['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]} className="form-control" placeholder="Enter a phone number" guide={false} id="my
<MaskedInput
mask={['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]}
className="form-control"
placeholder="Enter a phone number"
guide={false}
id="my-input-id"
onBlur={() => {}}
onChange={() => {}}
/>
{}
onChange={()=>{}
/>
出于许多原因,我将定义保存在Redux状态。并按如下方式使用输入:
<MaskedInput
placeholder={placeholder} // comes from Redux state
mask={mask} // comes from Redux state
className="form-control"
value={value} // comes from Redux state
onChange={(e) => handleChange(id, e.target.value)} // triggers action that saves value to Redux
/>
handleChange(id,e.target.value)}//触发将值保存到Redux的操作
/>
问题来自我在Redux中保存掩码。执行如下:
提前谢谢 不能序列化正则表达式文本,也不应在redux中存储函数引用。你的问题是
JSON.stringify(/\d/) => {}
因此,您的正则表达式文本永远不会被精确序列化 请提供用于创建带有掩码的新状态的减速机。我认为问题就在这里。引用上面的答案:“不,你不应该在redux存储中存储函数引用。它们是不可序列化的,正如你提到的,状态应该随时可序列化。”
/\d/
这是一个不可序列化的正则表达式JSON.stringify(/\d/)
返回{}
。感谢您的回答。我现在明白了,哪里出了问题:)但是你能给我一些建议如何克服这个问题吗?可能将id存储到某个本地枚举?然后从那里读面具?