Почему в методах React используют bind()? [дубликат]

409
09 июня 2017, 12:58

На данный вопрос уже ответили:

  • В чем отличие между React.createClass и class extends React.component? 1 ответ
  • Потеря контекста вызова 4 ответа

Начал осваивать es6, пишу на ReactJs. Встречаю в обработчиках событий методы типа:

onChange={this.selectKey.bind(this)}

Как нпример в этом туториале Подскажите пожалуйста для чего используется .bind(this)?

Answer 1

Bind нужен, чтобы жестко задать, на что будет указывать this при вызове функции

Answer 2

Еще можешь встретить такой вариант:

class App extends Component {
constructor(props) {
super(props);
this.selectKey = this.selectKey.bind(this);
}
render() {
    return (
        <div className="someClass">
            <input onChange={this.selectKey}/>
        </div>
        );
    }
}

Фактически, это тоже самое, что и твой вариант, с той лишь разницей, что тебе не придется писать .bind(this) везде, где нужно вызвать функцию.

READ ALSO
Средства модульного программирования

Средства модульного программирования

Дали задание, решаемое (вроде как) в пару строк кодаУсловие звучит так:

259
Кроп изображения в админке Django с помощью cropper.js

Кроп изображения в админке Django с помощью cropper.js

Нужно передавать на сервер обрезанное с помощью JS библиотеки изображениеКак это реализовать?

301
Как получить дату в нужном формате одной командой? JavaScript

Как получить дату в нужном формате одной командой? JavaScript

Как получить дату в формате YYYY/MM/DD HH:NN, я знаю есть команды для получения года, месяца и тд

336