Я новичок в реакции и делаю игру. Здесь я написал
{showButton && (
<div>
<button className="button_player1" onClick={evt => this.useBaron_id(evt,0,0)} >Player1</button>
<button className="button_player2" onClick={evt => this.useBaron_id(evt,1,0)}>Player2</button>
<button className="button_player3" onClick={evt => this.useBaron_id(evt,2,0)}>Player3</button>
<button className="button_player4" onClick={evt => this.useBaron_id(evt,3,0)}>Player4</button>
</div>
)}
, чтобы отображать и не отображать кнопки, если showbutton истинно. Однако я использовал его в разных if
заявлениях
{showButton && (
<div>
<button className="button_player1" onClick={evt => this.useGuard_id(evt,0,0)} >Player1</button>
<button className="button_player2" onClick={evt => this.useGuard_id(evt,1,0)}>Player2</button>
<button className="button_player3" onClick={evt => this.useGuard_id(evt,2,0)}>Player3</button>
<button className="button_player4" onClick={evt => this.useGuard_id(evt,3,0)}>Player4</button>
</div>
)}
Теперь он работает, но каждый раз, если есть карта Барона и Стража, эта кнопка работает для них обоих, поэтому я не буду, если он пойдет в функцию useBaron_id
или useGuard_id
. Я могу писать по отдельности showButton
, однако у меня больше 8 карточек, поэтому я не хочу писать, например, showButton
, showButton1
и т.д. c. Есть ли способ сделать это проще? Каждый раз, когда я вызываю эту функцию, для каждой карты свой
useBaron = evt => { var { showButton } = this.state; this.setState({showButton : true})}
useGuard = evt => { var { guard_select_card } = this.state; this.setState({guard_select_card : true})}
useGuard_id_card = (evt,id) => {
var { guard_select_card,id_of_card } = this.state;
id_of_card=id
this.setState({ id_of_card })
this.setState({showButton : true})
this.setState({guard_select_card : false})
А в моих useGuard_id
и useBaron_id
и выключаю их, как this.setState({showButton : false})