由于React Intl v2不再支持嵌套的消息对象,因此需要对消息进行展平。
export const flattenMessages = ((nestedMessages, prefix = '') => { if (nestedMessages === null) { return {} } return Object.keys(nestedMessages).reduce((messages, key) => { const value = nestedMessages[key] const prefixedKey = prefix ? `${prefix}.${key}` : key if (typeof value === 'string') { Object.assign(messages, { [prefixedKey]: value }) } else { Object.assign(messages, flattenMessages(value, prefixedKey)) } return messages }, {})})// Use flattenMessages<IntlProvider locale={locale} messages={flattenMessages(messagesForLocale)}>参考:
- https://github.com/yahoo/react-intl/wiki/Upgrade-Guide#flatten-messages-object
- https://github.com/yahoo/react-intl/issues/162#issuecomment-139683466



