如何使用React,React Intl和Redux转换(i18n)错误消息?

时间:2017-09-07 20:06:12

标签: reactjs redux internationalization react-intl

我执行了performLogin操作,该操作会触发API并尝试使用提供的凭据对用户进行身份验证。此API调用可能导致错误。她是我的行动:

export const performLogin = (email: string, password: string) => {
    return (dispatch) => {
        UsersAPI.login(email, password).then(response => {
            // [..]
        }).catch(error => {
            const definedError: Error = defaultError;
            switch (error.response.status) {
                case 401:
                    definedError.message = 'Invalid email or password';
                    break;
                default:
                    definedError.message = error.message;
            }
            dispatch(displayError(definedError));
        });
    };
};

我的问题是,我如何将Invalid email or password国际化?

我使用React Intl所以我在组件中拥有i18n的基础设施。我的想法是定义一个错误类型,在操作中设置它,让登录组件或全局错误组件决定应该显示哪个错误。

React-Redux的方法是什么?

1 个答案:

答案 0 :(得分:3)

为什么要尝试翻译邮件?只需在商店中保存错误密钥,然后将其props传递给component,并在渲染时使用FormattedMessage进行翻译。