Aggrid vue i18n:更改语言后不刷新网格标题名称未翻译
Posted
技术标签:
【中文标题】Aggrid vue i18n:更改语言后不刷新网格标题名称未翻译【英文标题】:Aggrid vue i18n: Grid header name not translated without refresh after change language 【发布时间】:2021-03-14 04:20:24 【问题描述】:我在我的项目中使用 i18n 进行本地化,但是每当我更改语言时,所有页面的翻译都可以,除了网格标题名称!当我刷新页面时它变得正常了。如何在不刷新的情况下解决这种情况?
【问题讨论】:
【参考方案1】:您可以通过调用阅读器 API 上的 refreshHeader
函数来解决此问题。
试试这个:
this.gridApi.refreshHeader();
其中 gridApi 是您从 onGridReady
事件参数获取的 API 对象。
编辑,如何获取 gridApi :
你从被 AgGrid 组件调用的 onGridReady 方法的参数中获得的 gridApi。 如果您使用的是 reactJs,则 agGrid 组件中名为 onGridReady 的属性将接受该功能。
onGridReady = params =>
this.gridApi = params.api
this.gridColumnApi = params.columnApi
...
【讨论】:
感谢您的回答,第一个 gridApi 不包含 refreshHeader 功能,即使我在我的网格中尝试了该功能并且没有工作。你能解释一下我该如何使用吗?例如:我更改了导航栏上的语言,并发出了刷新标题的函数,我使用了“this.gridApi.refreshHeader();”我到达 gridApi 的位置。 @ÖzlemUslu 刷新标头功能将重建标头,并在每个标头上执行headerValueGetter
(如果存在)。你是如何进行国际化的?如果你在别处(除了 headerValueGetter),refreshHeader
方法可能对你没有帮助
通常我使用“headerName”来定义和本地化标题名称。我像你说的那样使用“headerValueGetter”并且它有效!非常感谢 :) 我不确定在整个项目中仅将其用于名称本地化是否有效。我的意思是“headerValueGetter”,我有很多网格。会影响性能吗?
headerValueGetter
仅在渲染整个 agGrid 组件或调用刷新标头时才被调用。它确实会使页面卡顿半秒钟,所以不要过度使用它。以上是关于Aggrid vue i18n:更改语言后不刷新网格标题名称未翻译的主要内容,如果未能解决你的问题,请参考以下文章