несколько кнопок на странице - клик по одной из них должен открывать попап с формой, попап и форму решил сделать на реакте в рамках изучения технологии.
клик по кнопке обрабатывает такой обработчик:
applyHandler(event) {
const name = event.target.name;
import('../../react-components/apply-form.jsx').then(({default: applyForm}) => applyForm(name));
}
Таким образом я передаю в компонент по какой кнопке был клик
export default function(name) {
ReactDOM.render(<ApplyForm name = {name}/>, document.querySelector('.dinamic-content'));
}
изначально в state выставлено в конструкторе isOpen: true
constructor(props) {
super(props);
this.state = {
isOpen: true
};
this.closeComponent = this.closeComponent.bind(this);
}
closeComponent меняет isOpen на false и подвешен как обработчик клика на кнопку закрытия
closeComponent() {
this.setState({isOpen: false});
}
Соответственно после закрытия повторный клик на кнопку ни к чему ни приводит, так как состояние то не менятся...
Не могу придумать как связать эти вещи...
При вервом клике, когда происходить импорт компонента передать в пропсы массив этих кнопок и на каждую повесить обработчик который будет менять состояние?
handlePopup { this.setState({ isOpen: !this.state.isOpen }) } например так.
Хочешь освоить реакт, бери и пиши проект дома у себя на нем, но то что ты делаешь, никакой пользы тебе не принесет
можешь попробовать использовать ReactDOM.unmountComponentAtNode
Обсуждают сегодня