react-简写形式的setState

时间:2018-07-13 14:02:44

标签: reactjs state setstate

你能写

    let firstNameValid = this.state.firstNameValid;

    firstNameValid = value.length >= 1; 

    this.setState({ firstNameValid, firstNameValid,}) 

简写语法

this.setState({ firstNameValid})  

我已经尝试了上面的代码,看来工作正常。 只是想知道它是否会有副作用?

3 个答案:

答案 0 :(得分:4)

TestView只是this.setState({ firstNameValid })的糖。没有副作用。

这些被称为this.setState({ firstNameValid: firstNameValid }),您可以阅读关于它们的更多信息here

答案 1 :(得分:3)

react使用ES2015(带有webpack和babel)。

setState接受作为对象的参数。

在ES2015中,{ a : a }{ a }(对象缩写符号)相同。

所以x = { a : a, b : b ...}x = { a, b ..}相同 因此,您的代码是完全有效的,不会有任何副作用。

答案 2 :(得分:1)

如果您是说自己正在写作

this.setState({foo: foo})

现在您正在使用this.setState({ foo })

没有区别。

但是setState很可能会产生副作用,首先是因为它是异步的,其次是因为您正在更改整个组件的状态并导致渲染。

通过这种简短的对象分配方式是JS功能,与react没有关系。