我刚开始学习React和JavaScript.
在完成本教程的过程中,我得到了一个组件的示例代码,它创建了一个切换按钮.
这是代码的一部分:
class Toggle extends React.Component { constructor(props) { super(props); this.state = {isToggleOn: true}; this.handleClick = this.handleClick.bind(this); } handleClick() { this.setState(prevState => ({ // prevState? isToggleOn: !prevState.isToggleOn })); }
在这里困扰我的2件事:
prevState
争论来自哪里?在调用之前
我没有看到任何类似的东西var prevState = this.state;
,但仍然有效.
箭头函数的语法:为什么箭头后的括号?
为什么通常的arg => { statement; }
语法不能在这里工作?
对不起,新手问题......
prevState
由React提供props
,两者都是可选的.
括号允许多行,如果你不使用括号,你将被迫使用a prevState
.您可以使用单行,但不需要花括号.
更新:我忘了提到需要括号的特定情况.如果要返回没有updater
语句的对象,则必须将其包装在括号中.谢谢@joedotnot抓住这个.因此它state
会抛出一个错误,因为它看起来像一个函数而且props
是一个无效的行.要解决这个问题,必须看起来像return