html разметка в строке js

145
23 июня 2022, 13:00

Может кто нибудь подсказать ? использую create-react-app. есть вот такой компонент -

import React from 'react'
import './Cases.sass'
import {CaseItem} from './CaseItem'
import case_1 from '../img/Cases/case-1.jpg'
class Cases extends React.Component {
    constructor(props){
        super(props);
        this.state = {
            cases: [
                { caseImg: case_1, caseName: 'mysite.ru', caseSpecial: 'Оклейка автомобилей пленкой', caseText: 'Целевая аудитория: бизнес с автопарком, который необходимо забрендировать. Проблема – много трафика на сайте от частников, мало целевой аудитории. Результат: 2 месяца.' }
            ]
        }
    }
    render() {
        let cases = this.state.cases;
        return (
            <section className="cases">
                <div className="container">
                    <div className="row">
                        {
                            cases.map((item, i) => {
                                return(
                                    <div className="col-lg-4 col-md-12">
                                        <CaseItem img={item.caseImg} name={item.caseName} special={item.caseSpecial} text={item.caseText} key={i} />
                                    </div>
                                )
                            })
                        }
                    </div>
                </div>
            </section>
        )
    }
}
export default Cases

А можно как то прописать в строке - caseText, html разметку? что то типо -

" "+<teg>+" Целевая аудитория: "+<teg/>+" бизнес с автопарком..."

но так не работает.

Answer 1

В компоненте CaseItem: <tag>{this.props.text}</tag>

Можно написать функцию в Cases которая будет возвращать возвращать jsx

  function template(string) {
      return (<i>{string}</i>)
  }

(тег i для наглядности)

ну и потом передавать эту функцию в пропсах:

<CaseItem template={template} />

ну или передавать результат выполнения:

<CaseItem text={template(item.caseText)} />
READ ALSO
Бесконечная загрузка storybook для react-native

Бесконечная загрузка storybook для react-native

Я столкнулся с бесконечной загрузкой в веб интерфейсеКомпоненты не отображаются, ошибок и предупреждений нет

148
jquery unix time, timestamp узнать прошла ли минута

jquery unix time, timestamp узнать прошла ли минута

Мне нужно узнать, прошла ли минута в функции localStorageTime

181
Не меняется значение id обратно

Не меняется значение id обратно

Имеется кнопка и при ее нажатии должен меняться id с theme-white на theme-black, но когда id меняется, то еще раз при нажатие кнопки, не возвращается id с theme-black...

171
Ошибка при добавлении карточки

Ошибка при добавлении карточки

Написала функцию добавления карточки на страницуСама карточка добавляется, но не передается значение name в описание к карточке и Devtools выдает...

180