Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 首选ES6 arrow函数语法格式_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 首选ES6 arrow函数语法格式

Javascript 首选ES6 arrow函数语法格式,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有一个onChange事件处理程序,其形状如下: (e) => (value => this.setState(prevState => ({ form: { ...prevState.form, email: value } })))(e.target.value) 我把它缩小到这个 (e) => { let value = e.target.value; thi

我有一个
onChange
事件处理程序,其形状如下:

(e) => (value => this.setState(prevState => ({
        form: {
            ...prevState.form,
            email: value
        }
    })))(e.target.value)
我把它缩小到这个

(e) => {
    let value = e.target.value;
    this.setState((prevState) => ({
        form: {
            ...prevState.form,
            password: value
        }
    }))
}
这两个都不是很吸引人。我喜欢第一个b/c,它少了3行代码,但也有大量的括号。有没有我可能遗漏的另一个变体可以进一步清理这个问题?使用spread运算符会增加一个额外的参数,是否可以以某种方式删除


谢谢

我个人会用这个:

e => {
    let value = e.target.value;
    this.setState({
        form: {
            ...this.state.form,
            password: value
        }
    });
}

我个人会用这个:

e => {
    let value = e.target.value;
    this.setState({
        form: {
            ...this.state.form,
            password: value
        }
    });
}

您可以对事件中的值进行分解,只需执行
setState
作为唯一的语句

({ target: { value } }) => this.setState(prevState => ({
  form: {
    ...prevState.form,
    password: value
  }
}));

您可以对事件中的值进行分解,只需执行
setState
作为唯一的语句

({ target: { value } }) => this.setState(prevState => ({
  form: {
    ...prevState.form,
    password: value
  }
}));

你还有一个想法:)


你还有一个想法:)


非常感谢第二个,非常感谢第二个,这是baller,解构ftw。谢谢我知道有更好的办法。不管谁投了反对票,都不能用这个:)这是baller,解构ftw。谢谢我知道有更好的办法。无论谁投了反对票,都不能用这个:)