我只是想创建一个仅增加数字+1的按钮。因此,如果当前状态为1,则按钮会将其更改为2。2到3、3到4等。但是,这不会发生哈哈。它只是在数字上加1,所以每次单击它都将变为111111111。我一直都在写页面更改,但是由于某种原因,这变得疯狂了。我真的可以多加注意。
我尝试使用prevState,看看是否可行,没有运气。更改函数的传递方式,没有运气...这很奇怪。
class WatchEpisode extends Component {
constructor(props) {
super(props);
this.state = {
episode: this.props.match.params.episode_number,
};
}
nextEpisode = () => {
this.setState({ episode: this.state.episode + 1 });
};
render() {
return (
<div className='fullscreen-video'>
<button className='next-episode' onClick={this.nextEpisode}>
Next Episode
</button>
// also tried onClick={()=>{this.nextEpisode()}} no luck
</div>
);
}
}
export default withRouter(WatchEpisode);
预期输出应为当前状态加1。因此,如果情节是第1集,则按钮应将数字更新为2。但是,它只是将数字加1,所以11、111、1111、11111 ...
答案 0 :(得分:1)
正如Ry所说的那样,参数中的数字是作为字符串传递的,必须对其进行解析并将其转换为整数!在我的状态下使用parseInt(this.props.match.episode_number)可以达到目的! :)