Я хочу представить несколько разных типов информации в отдельных карточках. Каждая карта должна открываться и закрываться при нажатии на заголовок.
До сих пор я писал этот фрагмент кода:
import React, { Component } from 'react';
import { PropTypes } from 'prop-types';
// Importing Styles
import './styles.scss';
class CardToggle extends Component {
static propTypes = {
title: PropTypes.string.isRequired
};
constructor(props) {
super(props);
this.state = {
isOpen: false
};
this.handleToggleClick = this.handleToggleClick.bind(this);
}
handleToggleClick = () => {
this.setState({
isOpen: !isOpen
});
};
render() {
const { title } = this.props;
return (
<div className="card my-2 border-0 rounded-0">
<div className="card-body d-flex">
<h4>
<a className="text-secondary" href="">
{title}
</a>
</h4>
</div>
</div>
);
}
}
export default CardToggle;
У меня есть несколько проблем. Произошла ошибка, что handleToggleClick
не определено. Кроме того, каждый компонент, который я использую внутри этого компонента, не помещается в тело карты: он помещается под ...
Итак, мне нужно поместить содержимое компонента, который я хочу, чтобы оно появлялось и исчезало внутри компонента, и заставить работать компонент свертывания.
Я использую чистые Bootstrap 4
классы для карточек, заголовков и текста, и я хочу использовать чистую реакцию для функций открытия / закрытия ....
Вот пример компонента, который я хочу вставить в компонент карты:
import React, { Component } from 'react';
import CardToggle from '../CardToggle';
import { ThePermissions } from '../../constants';
class Permissions extends Component {
render() {
return (
<div>
<CardToggle title="Permissions" />
<button className="btn btn-primary">Submit</button> // From
here it is outside the card
<div>
More Content here
</div>
</div>
);
}
}
export default Permissions;
Может кто-нибудь дать мне руку. Я не хочу использовать библиотеку, и я хочу, чтобы компонент можно было повторно использовать. Я также хочу обработать дополнительную логику в отношении show/hide
на главном обзорном экране, который уже огромен.
Если вы тоже хотите это увидеть, просто пингуйте меня.