状态编号未正确递增

时间:2019-05-30 03:05:51

标签: javascript reactjs

我只是想创建一个仅增加数字+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 ...

1 个答案:

答案 0 :(得分:1)

正如Ry所说的那样,参数中的数字是作为字符串传递的,必须对其进行解析并将其转换为整数!在我的状态下使用parseInt(this.props.match.episode_number)可以达到目的! :)