Средство форматирования значений AG-GRID не работает для динамически генерируемой валюты - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь использовать средство форматирования значений в моей таблице AG-GRID для отображения информации о валюте.

Это отлично работает, когда у меня есть жестко запрограммированное значение в модуле форматирования, в данном случае юникод для 'евро '

currencyFormatter(params) {
  return '\u20ac' + params.value;
}

Однако я заранее не знаю, в какой валюте мне потребуется форматировать данные, поскольку они генерируются динамически. Если я попробую использовать значение, доступное в моем компоненте (как показано ниже), оно ему не понравится!

currencyFormatter(params) {
  return this.currencyUnicode + params.value;
}

В консоли выводится:

TypeError: Cannot read property 'defaultCurrency' of undefined

Кажется, что все переменные компонента this недоступны внутри currencyFormatter. Есть ли способ заставить это работать?

1 Ответ

2 голосов
/ 09 мая 2020

Чтобы получить доступ к переменным компонента, вам необходимо привязать контекст компонента - this к valueFormatter

...
name : 'Currency',
field : 'currency',
valueFormatter: this.currencyFormatter.bind(this) //bind your component's context here
...

currencyFormatter(params) {
  return this.currencyUnicode + params.value;
}

Это общая проблема javascript. Вот хорошее чтение

Кроме того, этот ответ описывает 2 способа, которыми вы можете ссылаться на this.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...