【问题标题】:Increment syntax: two pluses ain't as plus one? (Reactjs) [duplicate]增量语法:两个加号不等于加一吗? (Reactjs)[重复]
【发布时间】:2019-04-19 11:08:22
【问题描述】:

为什么这个例子有效

 showNext = () => {
    const { current, total } = this.state;
    this.setState({
      current: current + 1 === total ? 0 : current + 1
    });
  };

而这个不是

 showNext = () => {
    const { current, total } = this.state;
    this.setState({
      current: current++ === total ? 0 : current++
    });
  };

而这个也不行

  showNext = () => {
    const { current, total } = this.state;
    this.setState({
      current: ++current === total ? 0 : ++current
    });
  };

【问题讨论】:

  • “工作”是什么意思?
  • @FedericoklezCulloca 对!明白了……
  • 最后两个例子出错。并且脚本不起作用。 Fn 只是整个脚本的一部分。
  • ++current 会递增并比较值,但如果你返回 ++current,它将返回一个双倍递增的值,正确的解决方案是current: ++current === total ? 0 : current,但不建议这样做直接改变状态,因为它会导致意想不到的问题

标签: javascript reactjs increment


【解决方案1】:

因为var +1 创建了一个新变量,该变量被评估并且保持var 不变。

后自增和预自增 (++var var++) 实际上改变了变量。因此,在这些示例中,您在评估和分配变量时都在增加变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2012-02-12
    • 2016-05-24
    • 1970-01-01
    相关资源
    最近更新 更多