首页 > 解决方案 > 将带参数的函数传递给映射元素

问题描述

函数changeVideo是这样定义的,

  changeVideo(url) {
    alert(url)
  }

UI 试图将它传递给几个映射的图像。这是接收 changeVideo 并将其映射到所述图像的函数。videos是一个对象。摄取的 urlchangeVideovideos对象的属性。

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错了。感谢您的关注!

标签: javascriptreactjsparametersmap-function

解决方案


thisinsidevideoList不会有changeVideo属性,但是由于您已经将其作为函数传递,请changeVideo直接使用:

this.changeVideo(videos[key].url更改为changeVideo(videos[key].url


推荐阅读