Передайте стиль как реквизит в реагирующем компоненте - PullRequest
0 голосов
/ 15 апреля 2020

Я создал компонент event-box в реагировать. Я хочу, чтобы при каждом вызове я передавал значения цвета в качестве реквизита, которые позже используются для установки его границы. В настоящее время я установил два жестко закодированных имени класса и передал их как компонент с компонентом. Есть ли другой способ сделать это, так как я не смогу добавить все имена классов цветов в мою таблицу стилей.

Код компонента


import React from 'react';

class EventBox extends React.Component{
    constructor(props)
    {
        super(props);
        this.state={

        }
    }
    render()
    {
        const style={
            marginBottom:'0px'
        }
        const list={
            display:'inline-flex',
            width:'100%',
            marginBottom:'10px'
        }
        const listItem={
            flex:'1',
            display:'flex'
        }
        return(
            <div className={this.props.class}>
                <ul className="list list-inline" style={list}>
                    <li className="list-inline-item color-golden" style={listItem}>1 March 2020</li>
                    <li className="list-inline-item color-red flex flex-end" style={listItem}>200 People Interested</li>
                </ul>
                <h3 className="sub-heading roboto">Title</h3>
                <p className="paragraph roboto" style={style}>Saket, New Delhi</p>
                <p className="paragraph roboto" style={style}>Time: 05:00 P.M - 06:30 P.M</p>

            </div>
        )
    }
}
export default EventBox;


 <EventBox class="col-md-12 event-box-container red-border" />
 <EventBox class="col-md-12 event-box-container green-border" />

CSS

.event-box-container.red-border{
    border-top: 8px solid red;
}
.event-box-container.green-border{
    border-top: 8px solid green;
}

1 Ответ

1 голос
/ 15 апреля 2020

Вы можете просто передать динамические стили c компоненту как объект.

import React from 'react';

class EventBox extends React.Component{
    render() {
        return(
            <div className="col-md-12 event-box-container" style={this.props.style}>
            </div>
        )
    }
}
export default EventBox;
<EventBox style={{ borderTop: '8px solid red' }} />
<EventBox style={{ borderTop: '8px solid green' }}  />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...