Я новичок, чтобы отреагировать, и я пытаюсь отобразить один компонент в разных HTML-файлах (потому что я работаю в существующем проекте), каждый из которых отличается текстом.
Я думаю о чем-то вроде этого:
class ctaSection extends React.Component{
render(){
return(
<div className="cta-section">
<div className="md:w-9c">
<h5 className="uppercase">{this.props.h5}</h5>
<h3>{this.props.h3}</h3>
</div>
<div className="cta-button">
<a href="#">
<button className="w-full">{this.props.button}</button>
</a>
</div>
</div>
);
}
}
export default ctaSection;
Затем в моем index.js я рендерил вот так, передавая реквизиты:
let ctaPage1 = document.getElementById('cta-section-page-1');
let ctaPage2 = document.getElementById('cta-section-page-2');
ReactDOM.render(<CtaSection h3='my text for page 1' h5='my h5 for page 1' button='hello'/>, ctaPage1);
ReactDOM.render(<CtaSection h3='text for page 2' h5='something' button='click me'/>, ctaPage2);
Я не уверен, что это лучший и более простой способ сделать это, потому что я дважды вызываю ReactDOM.render для одного и того же компонента, и я получил эту ошибку:
Uncaught Invariant Violation: Target container is not a DOM element.
Это прекрасно работает, если я рендерил компонент один раз, но не для нескольких экземпляров.
Каков наилучший способ сделать это?