【发布时间】: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