Vue i18n elementui: Error in render: “TypeError: Cannot read properties of undefined (reading ‘_t‘)“

博客主要讲述了Vue+i18n+elementui出现报错的情况,原因是未兼容elementui,解决办法是对elementui进行兼容,还给出了多语言目录下的完整代码,如index.js和main.js。

1、Vue+i18n+elementui报错如图:

2、原因:未兼容elementui

3、解决:兼容一下elementui

import eleLocale from 'element-ui/lib/locale';
eleLocale.i18n((key, value) => i18n.t(key, value));

4、完整代码:

多语言目录:

index.js

import Vue from 'vue';
import VueI18n from 'vue-i18n';
import eleLocale from 'element-ui/lib/locale'; //兼容element

import customZhCn from './lang/zh-CN';
import customZhTw from './lang/zh-TW';
import customEnUs from './lang/en-US';

import zhCnLocale from 'element-ui/src/locale/lang/zh-CN';
import zhTwLocale from 'element-ui/src/locale/lang/zh-TW';
import enUsLocale from 'element-ui/src/locale/lang/en';

Vue.use(VueI18n);

let lang =  'zh-CN';  // navigator.language
Vue.config.lang = lang ;

Vue.locale = () => {};
const messages = {
    'zh-CN': Object.assign(zhCnLocale, customZhCn),
    'zh-TW': Object.assign(zhTwLocale, customZhTw),
    'en-US': Object.assign(enUsLocale, customEnUs),
};

const i18n = new VueI18n({
    locale: lang,
    messages,
    silentTranslationWarn: true
});

eleLocale.i18n((key, value) => i18n.t(key, value)) //兼容element

export default i18n;

main.js

……
import i18n from '@/locale';
……
export default new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值