javascript - 使用 vue-i18n 转换 Vue 组件 prop 的默认值
问题描述
我vue-i18n
用来处理我的应用程序中的本地化。我需要将本地化应用于组件道具的默认值:
export default {
name: 'ExampleComponent',
props: [{
prompt: {
required: false,
type: String,
default: $t('example.prompt.default')
}]
}
$t
显然不在所示范围内,但似乎此时正在评估道具的默认值,this
也不是组件本身,因此this.$t
也是未定义的。
使用 VueI18n 转换default
道具值的最佳方法是什么?
解决方案
您可以$t
在回调函数中访问,因为回调是在创建的组件的上下文中评估的。
prompt: {
required: false,
type: String,
default: function () {
this.$t('example.prompt.default')
}
}
这里的缺点是价值将undefined
在beforeCreate
生命周期钩子中。如果你需要它,那么最好的办法是将默认值设置为 i18n 定义的键(example.prompt.default),然后使用this.$t(this.prompt)
。
推荐阅读
- c++ - 无法找到未定义行为的原因
- android - 如何在电话呼叫或振铃时在后台运行服务?
- javascript - 如何从 React 中的状态调用动态变量?
- sql-server - SQL-SERVER - CASE 错误 - 特定源中的 CASE 不起作用
- java - 使用 Spring 在 Swagger UI 上接收 404 错误
- c# - 运行时指定实体上的动态 LINQ 联接。需要可过滤的返回对象。可能的?
- amazon-web-services - AWS - 私有 EC2(弗吉尼亚北部)和 S3(孟买) - 列表问题
- ios - UIScrollView 作为 UIControl
- android - BLE扫描不工作
- c++ - 从 C++ 文件中读取“动态”列后对它们进行排序。