面对生产中的蚂蚁设计表单验证问题
Facing ant-design form validation issue on production
基本上,我最近在我的生产环境中遇到了 ant-design 表单问题,之前它按预期工作。只有当我在本地执行 运行 NPM start
命令时,验证才有效。如果我使用 NPM Build: serve
然后在我的本地也面临同样的问题。
当我执行验证任务时在控制台上显示此错误。
Uncaught TypeError: Cannot read property 'push' of undefined at createBaseForm.js:369
遇到这个问题后,我尝试更新我所有的 NPM 包以及 mn NPM 和节点版本。
<FormItem>
{getFieldDecorator('userName', {
rules: [{ required: true, message: 'Please input username!' }],
})(<Input addonBefore={<i className="iconfont icon-user" />}
size="large" placeholder="Username" />
)}
</FormItem>
它没有向我显示规则中使用的错误消息。
在我的例子中,错误是由于 lodash.memoize
和 lodash.paths
没有加载到 webpack 构建中,因为我使用 lodash-webpack-plugin
来减小包大小。
默认删除的 Lodash 功能:link
解决方案是选择加入所需的功能。
new LodashModuleReplacementPlugin({
'memoizing': true,
'paths': true
});
编辑: antd
使用 rc-form
而后者又使用 lodash
设置错误。
基本上,我最近在我的生产环境中遇到了 ant-design 表单问题,之前它按预期工作。只有当我在本地执行 运行 NPM start
命令时,验证才有效。如果我使用 NPM Build: serve
然后在我的本地也面临同样的问题。
当我执行验证任务时在控制台上显示此错误。
Uncaught TypeError: Cannot read property 'push' of undefined at createBaseForm.js:369
遇到这个问题后,我尝试更新我所有的 NPM 包以及 mn NPM 和节点版本。
<FormItem>
{getFieldDecorator('userName', {
rules: [{ required: true, message: 'Please input username!' }],
})(<Input addonBefore={<i className="iconfont icon-user" />}
size="large" placeholder="Username" />
)}
</FormItem>
它没有向我显示规则中使用的错误消息。
在我的例子中,错误是由于 lodash.memoize
和 lodash.paths
没有加载到 webpack 构建中,因为我使用 lodash-webpack-plugin
来减小包大小。
默认删除的 Lodash 功能:link
解决方案是选择加入所需的功能。
new LodashModuleReplacementPlugin({
'memoizing': true,
'paths': true
});
编辑: antd
使用 rc-form
而后者又使用 lodash
设置错误。