我正在学习一本React书,但看到这样的简单,但我不知道为什么有一个','在[item]:value]
handleChange(item ,e) {
const {value} = e.target;
this.setState({[item]:value,});
}
render() {
const {name, age} = this.state;
return (
<div className="FormA">
name: <input value={name} onChange={this.handleChange.bind(this,'name')}/>
age: <input value={age} onChange={this.handleChange.bind(this,'age')}/>
</div>
);
}
答案 0 :(得分:2)
最佳做法是拥有&#39;&#39;在每个对象属性之后。您必须使用过ESLint:https://eslint.org/docs/rules/comma-style
这只是语法问题,不会在代码中添加任何内容。
答案 1 :(得分:1)
这是一种最佳做法,因为以下原因
逗号可以在结尾或前面。 [我通常在前面使用,个人选择。]
从ESList规则引用
逗号样式规则强制执行逗号分隔列表的样式。 JavaScript中主要使用两种逗号样式:
标准样式,其中逗号放在当前行的末尾
逗号第一种风格,其中逗号放在下一行的开头
使用逗号优先风格的理由之一是它可以帮助跟踪缺失和尾随逗号。这些都是有问题的,因为变量声明中缺少逗号会导致全局变量泄漏,而尾随逗号可能会导致旧版IE中的错误。
参考:
答案 2 :(得分:0)
这是因为您可以定义要设置的命名值的集合。如果您只设置一个,则不需要使用它。同样,最后一个元素也不需要它,例如:
this.setState({[item]:value}); //You don't necessary need the ',' here.
this.setState({
[item]:value, //here you need to use ','
[item2]:value2, //here you need to use ','
[item3]:value3}); //here you don't need to use ','