我正在构建一个 React 应用程序,用户可以在其中选择他们想要的门票数量,然后从布局中选择他们的座位。
我正在使用适用于各种元素的上下文 API,但我正在尝试返回用户选择的座位ID 。
这是具有可点击元素的组件,我需要从中获取 ID -
class ChooseSeats extends React.Component {
render(){
return(<Context.Consumer>
{(context) => {
return (
<div>
<p>Remaining tickets: {context.state.remainingSeats}</p>
<p>Chosen seat: {context.state.chosenSeat}</p>
<div>
<div id="A1" onClick={context.chooseSeats}>
<img src={freeSeat} alt="freeSeat"/>
</div>
<div id="A2" onClick={context.chooseSeats}>
<img src={freeSeat} alt="freeSeat"/>
</div>
<div id="A3" onClick={context.chooseSeats}>
<img src={freeSeat} alt="freeSeat"/>
</div>
</div>
</div>
)}
}
</Context.Consumer>
)
}
}
这是上下文文件 -
export class Provider extends React.Component {
state = {
chosenSeat: " ",
remainingSeats: 8
}
render() {
const { remainingSeats, chosenSeat } = this.state
return(
<Context.Provider value={{
state: this.state,
chooseSeats: (event) => {
this.setState({
chosenSeat: event.target.id,
remainingSeats: remainingSeats - 1
})
console.log(chosenSeat)
},
}}>
{this.props.children}
</Context.Provider>
)
}
}
在我的实际应用程序中,该remainingSeats值最初取自一些下拉菜单,用户在这些菜单中选择他们的票,但为了简单起见,在这种情况下我只给它一个默认值 8。
该choseSeats函数正在运行,因为remainingSeats每次单击一个座位时该值都会减少 1,但它不会返回 的 ID chosenSeat。我试过chosenSeat作为一个字符串和一个数组,但都没有返回任何东西。
谁能告诉我哪里出错了?
慕的地8271018
相关分类