我有一个数据变量,如下所示:
data(){
return {
amount: {
active: false,
name: this.$i18n.t('key_name'),
value: this.$i18n.t('key_value')
}
}
}
数据变量正在使用本地化字符串。问题是,当我从下拉菜单更改语言时,amount
变量在发生任何其他事件之前不会更新。我相信这与$nextTick()
有关。
但不确定如何正确处理此更改,以使更改立即反映在amount
变量中。
我不能将其设为计算属性,因为稍后必须为该变量分配值。
像这样:
this.amount.active = true
我该如何解决?
答案 0 :(得分:1)
很难说出如何使用Vue i18n,但是您可以使用文档中所述的watcher并注意全局i18n.locale object,例如:
if(pocketItemAdapter.removeItem(viewHolder.getAdapterPosition()) == 1){
Snackbar snackbar = Snackbar.make(coordinatorLayoutPocketMain,R.string.successfully_deleted,3000)
.setAction(R.string.undo, new View.OnClickListener() {
@Override
public void onClick(View view) {
pocketItemAdapter.restoreItem(pocketList,deletetIndex);
database.createpocketEntry(pocketList.getTIMESTAMP(),pocketList.getAMOUNT(),pocketList.getDESCRIPTION(),pocketList.getCATEGORY());
}
});
snackbar.getView().setBackgroundColor(ContextCompat.getColor(PocketMain.this,R.color.colorBright));
snackbar.show();
}else{
final Snackbar snackbar = Snackbar.make(coordinatorLayoutPocketMain,"Löschen war nicht erfolgreich",Snackbar.LENGTH_SHORT);
snackbar.setAction("Ok", new View.OnClickListener() {
@Override
public void onClick(View view) {
snackbar.dismiss();
}
});
snackbar.getView().setBackgroundColor(ContextCompat.getColor(PocketMain.this,R.color.red));
snackbar.show();
pocketItemAdapter.restoreItem(pocketList,deletetIndex);
}
取决于它在项目中的配置方式。