【发布时间】:2021-05-07 18:40:13
【问题描述】:
class App extends React.Component{
state = {
number:0
};
ADD = ()=>{
this.setState(current=>current.number+1)
};
MINUS = ()=>{
this.setState(current=>--current.number);
};
render(){
return(
<div>
<h1>Number is: {this.state.number}</h1>
<button onClick={this.ADD}>Add</button>
<button onClick={this.MINUS}>Minus</button>
</div>
);
}
}
上面的代码是在ReactDOM.render(<App/>,docment.querySelector('#root'));中使用的类组件
current=>--current.number 运行良好,但 current=>current.number-1 不起作用
我无法区分两者之间的区别
另外,我想知道setState 方法在将foo 作为参数(如this.setState(foo))时的剂量
【问题讨论】:
-
在您的函数版本中,您没有返回新状态,只是返回数字。
-
所以两者都只返回一个数字,但
--currrent.number更改了一个数字并返回它......这就是区别吧? -
两者都不能正常工作。状态以 object 开始,但您随后将其设置为 number。此外,在您的浏览器控制台中尝试此操作:
foo = (x)=>--x.current; bar = 3; console.log(foo(bar)); console.log(bar);它并没有按照您的想法执行...
标签: javascript reactjs state setstate