不明白 JavaScript 赋值运算符如何与函数交互

Don't understand how JavaScript assign operator interacts with a function

我的问题是我不明白赋值运算符是如何被解释和与函数交互的。让我解释一下

我正在更改我的组件的状态,当然我做错了一些事情,直到我意识到它我才发现。

我的组件:

class UpdateLifeCycle extends Component {
  state = { src: urls[this.props.election] };

  componentWillReceiveProps(nextProps) {    
    this.setState = { src: urls[nextProps.election] };    
  }

  render() {
    return (
      <div>
        <p>Selected {this.props.election}</p>        
        <img //
          alt={this.props.election}
          src={this.state.src}
          witdh="250"
        />
        <p>{urls[this.props.election]}</p>
        <p>{this.state.src}</p>
      </div>
    );
  }
}

我做的,错的是这篇

this.setState = { src: urls[nextProps.election] };    

我应该做的是将它作为参数传递而不是分配它。

this.setState({ src: urls[nextProps.election] });    

为什么 JS 解释器允许您对函数进行赋值和对象化,对象被赋值到哪里?

TL;DR

setState 是一个 变量 ,它当前持有一个 function。没有什么可以阻止您更改它的值并在那里添加一个对象,因为它 一个变量。 JavaScript 受到其他函数式编程语言的影响,将函数赋值给变量是可以的。

说明

state 是 React 组件中的一个特殊对象,您可以将其访问为 this.statesetState 是 React 组件中的一个特殊函数,它允许您修改状态。更新状态时会调度操作,但是您不应该直接修改 React 组件的状态,并且应该始终使用 setState.

setState是JavaScriptclass中的另一个变量(你的React组件是基于class的组件),默认持有修改state 变量。 您可以覆盖 JavaScript 中的变量,并且当您将对象(您想要的新状态)分配给 setState 时,您正在更改 setState 的值,它现在无法再更新 state变量。

你会发现 React 的 docs 很有帮助。