<FormattedMessage /> возвращает строку без тегов

Потерпите меня, я не знаю, как объяснить эту проблему.

Я использую Bootstrap Table для отображения своих данных, у меня есть searchFilters, сортировка и многие другие функции в таблице.

Когда я начал реализовывать интернационализацию, я начал с форматирования непосредственно в текстовом компоненте, когда у меня появилось слишком много столбцов и таблиц, я переместил имена столбцов во внешние файлы, которые читаются при необходимости. Мне также нужно было добавить динамический перевод, как вы можете видеть с помощью headerFormatter.

Проблема в том, что библиотека react-intl добавляет теги <span> при рендеринге, из-за чего другие теги <span> не работают должным образом.

const headerFormatter = (col, colIndex) => {
    return ( 
        <FormattedMessage id = {col.text} key = {colIndex} />
    );
}
//Column Example
{dataField: 'agentNo',text: 'AgentNo', headerFormatter: headerFormatter, filter: textFilter({defaultValue:''}), sort: true},

Есть ли способ заставить <FormattedMessage /> возвращать только string в этом сценарии?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Отформатировано:

<span>Date</span>

Неформатированный:

AgentNo
<span class = "react-bootstrap-table-sort-order dropup"><span class = "caret"></span></span>

Этот <span> раздавлен <span><FormattedMessage />

вы возвращаете компонент < FormattedMessage >, зачем вам строка? что ты будешь делать со строкой? Я не уверен, что понимаю вашу проблему

MayK 04.05.2018 16:21

все это находится в элементе без состояния, мне нужна строка, потому что она переопределяет другие функции диапазона в заголовке столбца

gouletf 04.05.2018 16:27

колонка находится под export const entityListColumns = { columns : [

gouletf 04.05.2018 16:28

Я добавил немного подробностей в вопрос

gouletf 04.05.2018 16:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
612
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете добавить свои классы в компонент FormattedMessage следующим образом:

const headerFormatter = (col, colIndex) => {
    return ( 
        <FormattedMessage className = "react-bootstrap-table-sort-order dropup" id = {col.text} key = {colIndex} />
    );
}
class - зарезервированное ключевое слово в React.
Chase DeAnda 04.05.2018 19:07

можно написать className для стайлинга

gouletf 04.05.2018 19:44

также MayK, это не сработает, потому что css class динамически генерируется bootstrap и изменяется, когда состояние сортировки изменяется на сортировку по возрастанию или убыванию. он пойдет с react-bootstrap-table-sort-order dropup на react-bootstrap-table-sort-order

gouletf 04.05.2018 19:45
Ответ принят как подходящий

Мы решили реорганизовать и использовать функцию formatMessage, основанную на контексте

Другие вопросы по теме