@0348raven

Как по клику можно сделать раскрывающийся блок?

class CompanyPage extends React.Component {
    static propTypes = {
        dispatch: PropTypes.func.isRequired
    };

constructor(props) {
        super(props);

        this.state = {
            info: {
                display: 'none !important'
            }
        };
    }

onBtnClickHandler(e) {
    e.preventDefault();

        var block = document.querySelector('.selected-company-info__text');

        block.setState({
            info: { display: 'block !important' }
        });

    }

render () {
        const {
            props: {   },
            state: { info }
            } = this;

const style = {
            info: {
                block: info.block
            }
        };

return(
<a
                        href="javascript://"
                        className="button button--white button--center"
                        onClick={this.onBtnClickHandler}>
                        УЗНАТЬ БОЛЬШЕ О ...
                    </a>
                </div>
                <div style={style.block} className="selected-company-info__text visible-tablet disable-mobile">
                    some text
                </div>
);

}

}

export default CompanyPage;

Привожу пример компонента, react только начинаю изучать, поэтому могут ошибки разного рода. Прошу на них указать и дать пример другой реализации данного момента.
  • Вопрос задан
  • 1562 просмотра
Решения вопроса 1
@WapGeaR
Программист
Ох госпаде.

componentWillMount() {
this.setState({buttonToggle: true})
}

handleClick() {
this.setState({buttonToggle: !this.state.buttonToggle})
}

render() {
.....
<div style={{display: (this.state.buttonToggle ? 'block' : 'none')}}></div>
....
}

Ну и собственно зачем document.querySelector там где это не надо и вложенность стилей странная у вас, запутаетесь же
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы