@Barring

Варианты записи свойства в стейт компонента?

Прохожу основные понятия по документации React'a и там наткнулся на подобный класс :
class
class Calculator extends React.Component {
  constructor(props) {
    super(props);
    this.handleCelsiusChange = this.handleCelsiusChange.bind(this);
    this.handleFahrenheitChange = this.handleFahrenheitChange.bind(this);
    this.state = {temperature: '', scale: 'c'};
  }

  handleCelsiusChange(temperature) {
    this.setState({scale: 'c', temperature});
  }

  handleFahrenheitChange(temperature) {
    this.setState({scale: 'f', temperature});
  }

  render() {
    const scale = this.state.scale;
    const temperature = this.state.temperature;
    const celsius = scale === 'f' ? tryConvert(temperature, toCelsius) : temperature;
    const fahrenheit = scale === 'c' ? tryConvert(temperature, toFahrenheit) : temperature;

    return (
      <div>
        <TemperatureInput
          scale="c"
          temperature={celsius}
          onTemperatureChange={this.handleCelsiusChange} />
        <TemperatureInput
          scale="f"
          temperature={fahrenheit}
          onTemperatureChange={this.handleFahrenheitChange} />
        <BoilingVerdict
          celsius={parseFloat(celsius)} />
      </div>
    );
  }
}


У класса в стейте есть свойство temperature изначально равняющееся ''. В дальнейшем, как я понимаю, оно изменяется через методы handleCelsiusChange и handleFahrenheitChange (на вход методам даётся число, поступающее из других компонентов). Принцип работы обоих методов одинаков, они задают какое-то значение в scale - свойство стейта и мне непонятно следующее действие, что делается с параметром temperature? Что значит эта запись без присваивания?

handleFahrenheitChange(temperature) {
    this.setState({scale: 'f', temperature});
  }
  • Вопрос задан
  • 87 просмотров
Решения вопроса 2
miraage
@miraage
Старый прогер
Ответ написан
Комментировать
Это короткая запись для:
handleFahrenheitChange(temperature) {
    this.setState({
        scale: 'f', 
        temperature: temperature
    });
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы