2
我試圖按照本指南爲rails/react_on_rails項目實現i18n; https://github.com/shakacode/react_on_rails/blob/master/docs/basics/i18n.md在rails上反應/ react intl
我得到 「FORMATMESSAGE沒有定義」 的錯誤,所以我可能失去了一些東西,這是我的代碼:
import PropTypes from 'prop-types';
import React from 'react';
import { IntlProvider } from 'react-intl';
import { addLocaleData } from 'react-intl';
import en from 'react-intl/locale-data/en';
import nb from 'react-intl/locale-data/nb';
import { translations } from '../../../libs/i18n/translations';
import { defaultLocale } from '../../../libs/i18n/default';
// Initizalize all locales for react-intl.
addLocaleData([...en, ...nb]);
// set locale and messages for IntlProvider.
// const locale = method_to_get_current_locale() || defaultLocale;
const locale = defaultLocale;
const messages = translations[locale];
import { defaultMessages } from '../../../libs/i18n/default';
export default class TextMessage extends React.Component {
render() {
return (
<IntlProvider locale={locale} key={locale} messages={messages}>
{ formatMessage(defaultMessages.ActionsYes) }
</IntlProvider>
);
}
}
小隨訪,使用的最後一個版本,我再次得到一個錯誤;:
或者更簡單的只是改變這失敗的道具類型:道具'id'在FormattedMessage中被標記爲必需,但其值爲undefined。 – hso
您需要將'id'和'defaultMessage'道具傳遞給'FormattedMessage'。 make'console.log(defaultMessages.ActionsYes)'並檢查它是否有它們。 – Tomasz