Не понимаю, как оператор JavaScript assign взаимодействует с функцией - PullRequest
0 голосов
/ 13 февраля 2020

Моя проблема в том, что я не понимаю, как оператор оператора интерпретируется и взаимодействует с функцией. Позвольте мне объяснить,

Я изменял состояние своего компонента, и я делал что-то не так, что я не мог видеть, пока не осознаю это, конечно.

Мой компонент:

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 позволяет назначать и возражать против функции и где этот объект назначается?

1 Ответ

0 голосов
/ 13 февраля 2020

TL; DR

setState - это переменная , которая в настоящее время содержит function. Ничто не мешает вам изменить его значение и добавить туда объект, потому что является переменной. JavaScript находились под влиянием других функциональных языков программирования, и можно присвоить функцию переменной.

Пояснение

state - это специальный объект в Реагируйте на компонент, к которому вы будете обращаться как this.state. setState - это специальная функция в компоненте React, которая позволяет изменять состояние. Действия отправляются при обновлении состояния, однако вы не должны напрямую изменять состояние компонента React и всегда должны использовать setState.

setState - другая переменная в JavaScript class (Ваш React Component является компонентом на основе классов), который по умолчанию содержит функцию для изменения переменной state. Вы можете переопределить переменную в JavaScript, и когда вы назначаете объект (новое состояние, которое вы хотели) для setState, вы меняете значение setState, которое больше не может обновлять переменную state.

Вы найдете полезными документы от React.

...