React Native 小技

moment.locale 沒作用怎麼辦⋯⋯

ShàngYo Chen (Shawn)
2 min readJan 25, 2018

紀錄一些開發上遇到的雞毛蒜皮,因為需要一點時間找就乾脆寫下來吧!

這次的主角是大家都很愛用(?)的 moment.js,想要用一些方便的功能像是 .format() 或者 .fromNow(),如果 React Native 的專案又使用到多國語系時就會遇到⋯⋯

import moment from 'moment';moment.locale('zh-tw');moment(Date.now()).format('YYYY/MM/DD A hh:mm'); // 怎麼還是英文...?

猜測應該是 moment 並不支援 react native 環境的 bundler 去動態加載 locale 檔案。

moment.js 官方文件沒有很明確提到 React Native 的做法,目前找到的一個 workaround 是改 import:

import moment from 'moment/min/moment-with-locales';moment.locale('zh-tw');moment(Date.now()).format('YYYY/MM/DD A hh:mm'); // 2018/01/25 中午 12:04

缺點是 import 可能用不到的 locale 檔案,不過如果以後會很多國語系的話也無不可,建議可以先這樣做。

不知道有沒有人知道更好的做法?歡迎指教我這個新手 XD

參考來源:stackoverflow

--

--