面对生产中的蚂蚁设计表单验证问题

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.memoizelodash.paths 没有加载到 webpack 构建中,因为我使用 lodash-webpack-plugin 来减小包大小。

默认删除的 Lodash 功能:link

解决方案是选择加入所需的功能。

new LodashModuleReplacementPlugin({
    'memoizing': true,
    'paths': true
});

编辑: antd 使用 rc-form 而后者又使用 lodash 设置错误。