在 create-react-app 环境下运用 antd 开发时候发生一件坑爹的事情——日期控件 locale 设置失败。
按照官网教程一步步下来发现已然不起作用,并且症状表现为月份和星期数始终是英文,其实有两种错误模式。
【情况一】moment 未设置
抬头引入
import "moment/locale/zh-cn";
渲染前写入
moment.locale('zh-cn');
【情况二】这是一种比较极端的情况
排除以下原因:
- 引用错误
- 语法错误
- 拼写错误及字符串对象混淆错误
- 使用方法错误
- 按需加载模块缺失
- 代码逻辑优先级(设置默认值)
- moment.js 版本
- moment.locale() 和 moment().locale()
- antd 版本
逐个排查最终发现竟然是 react 版本不对劲,现公布一下失败的版本:
"react": "15.6.1",
"antd": "3.10.8",
"moment": "2.10.6"
最终解决,更新版本即可:
"react": "15.6.2", //核心
"antd": "3.11.6",
"moment": "2.23.0"
如果你发现类似问题,且无论如何也找不到错误,请合理怀疑 react 内部错误并选择重新安装 react 至相应的稳定大版本。