2017-01-24 8 views
0

В одном из моего компонента я использую что-то вроде:React: Используя функцию стрелки, чтобы передать опору

<PhotoList update_photo={() => this.update_photo()} /> 

Здесь я передаю функцию в качестве реквизита, который обновляет фотографию в состоянии ..

и в моем списке фото компоненты у меня есть список фотографий, где я обновляемые фото как:

<div className="single-photo" onClick={() => this.props.update_photo(photo)}> 

Здесь он проходит undefined вместо фото .. Buth когда я использую его в общих чертах, как <PhotoList update_photo={this.update_photo.bind(this)} /> и <div className="single-photo" onClick={this.props.update_photo.bind(this, photo)}> Это работает

В чем разница и почему первый метод не работает?

ответ

1

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

Так что, возможно попробовать разводку аргумент так:

<PhotoList update_photo={(photo) => this.update_photo(photo)} /> 

Тогда this.update_photo должен быть в состоянии установить состояние на основании аргумента, переданного в него.

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