2015-08-20 5 views
2

Что связывают делать в этом заявлении this.tick.bind (это) в следующем коде:Что связывает в этом примере?

export class Counter extends React.Component { 
    constructor(props) { 
    super(props); 
    this.state = {count: props.initialCount}; 
    } 
    tick() { 
    this.setState({count: this.state.count + 1}); 
    } 
    render() { 
    return (
     <div onClick={this.tick.bind(this)}> 
     Clicks: {this.state.count} 
     </div> 
    ); 
    } 
} 

Код взят из React сайта.

ответ

7

.bind() устанавливает this функции, которую он использует для создания, независимо от того, какой параметр передан. Docs here.

В этом случае функция функции tick() является контекстом функции render().

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

0

Он используется для передачи аргументов методу tick(), это просто Javascript и ничего, что реагирует конкретно.

Смежные вопросы