Передача функции с параметрами в сопоставленные элементы - PullRequest
2 голосов
/ 15 апреля 2020

Функция changeVideo определяется следующим образом:

  changeVideo(url) {
    alert(url)
  }

Пользовательский интерфейс пытается передать ее нескольким отображенным изображениям. Вот функция, которая получает changeVideo и сопоставляет его с указанными изображениями. videos это объект. URL, введенный changeVideo, является свойством объекта videos.

function videoList(videos, changeVideo) {
  return Object.keys(videos).map((key) => {
    return (
      <div>
        <img
          onClick={() => this.changeVideo(videos[key].url)}
        />
      </div>
    );
  });
}

Наконец, вот где я вызываю функцию videosList и передаю ей changeVideo.

 <div className="videoList">
      {videoList(this.state.videos, this.changeVideo)}
</div>

Где-то в процессе я передаю changeVideo неправильно. Спасибо за внимание!

1 Ответ

1 голос
/ 15 апреля 2020

this внутри videoList не будет иметь свойства changeVideo, но, поскольку вы уже передаете его как функцию, используйте changeVideo напрямую:

this.changeVideo(videos[key].url изменяется на changeVideo(videos[key].url

...