Да, вы могли бы достичь этого, установив переменную состояния в зависимости от имени отправляемого модала, например:
switchModal = modal => ev => {
this.setState(prevState => ({ [modal]: !prevState[modal] }))
}
А затем свяжите свою функцию onClick
следующим образом. Это установит функцию, привязанную к onClick
с заданным первым значением:
class ModalOpener extends React.Component {
constructor(props) {
super(props)
this.state = {
feedback: false,
review: false,
menu: false
}
}
switchModal = modal => ev => {
this.setState(prevState => ({ [modal]: !prevState[modal] }))
}
render() {
return(
<>
<button onClick={this.switchModal('feedback')}>A</button>
<button onClick={this.switchModal('review')}>B</button>
<button onClick={this.switchModal('menu')}>C</button>
</>
)
}
}
Теперь вы можете получить доступ к каждому значению следующим образом:
const { feedback, review, menu } = this.state