上篇文章解决了 Modal.confirm 底部按钮为英文的问题,文章链接
结果发现热更新后还是会显示成英文...
antd版本是3.20.0
webpack://[name]/./node_modules/_antd@3.20.0@antd/es/modal/locale.js 文件的代码如下
es 下是es6的版本,lib是es5版本,起初还怀疑热更新时候的代码和初次加载运行的代码不一样...
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
import defaultLocale from '../locale-provider/default';
var runtimeLocale = _extends({}, defaultLocale.Modal);
export function changeConfirmLocale(newLocale) {
if (newLocale) {
runtimeLocale = _extends({}, runtimeLocale, newLocale);
} else {
runtimeLocale = _extends({}, defaultLocale.Modal);
}
}
export function getConfirmLocale() {
return runtimeLocale;
}
defaultLocale
默认是英文的,会调用changeConfirmLocale
变成我们自定义的。
初始运行是这样的,没毛病!
问题在于热更新的时候,会触发componentWillUnmount
,啥也没传
这么看来,是一个bug,只能升级版本去解决了。