Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs onVideoSelect vs onVideoSelected_Reactjs_Ecmascript 6 - Fatal编程技术网

Reactjs onVideoSelect vs onVideoSelected

Reactjs onVideoSelect vs onVideoSelected,reactjs,ecmascript-6,Reactjs,Ecmascript 6,在我的react应用程序中,组件中有以下代码 <VideoList onVideoSelect={(selectedVideo) => this.setState({ selectedVideo })} videos={this.state.videos} /> 上面的代码可以工作,没有问题,但只要我将onVideoSelect更改为onVideoSelected,就会出现一个错误,即onVideoSelected不是一个定义的函数 我的问题是,onV

在我的react应用程序中,组件中有以下代码

<VideoList
      onVideoSelect={(selectedVideo) => this.setState({ selectedVideo })}
      videos={this.state.videos}
/>
上面的代码可以工作,没有问题,但只要我将onVideoSelect更改为onVideoSelected,就会出现一个错误,即onVideoSelected不是一个定义的函数

我的问题是,onVideoSelected是在ReactJS或ES6中定义的函数吗

供参考:

其他代码:

const VideoListItem = ({ video, onVideoSelect }) => {
    const imageUrl = video.snippet.thumbnails.default.url;

    return (
        <li onClick={() => onVideoSelect(video)} className="list-group-item">
            <div className='video-list media'>

                <div className='media-left'>
                    <img className='media-object' src={imageUrl} />
                </div>

                <div className='media-body media-heading'>
                    <div className='media-heading'>
                        {video.snippet.title}
                    </div>
                </div>

            </div>
        </li >)
};

如果要将onVideoSelect更改为onVideoSelected,则需要将as onVideoSelected传递给VideoListItem组件,如

    <VideoListItem
                onVideoSelected={this.props.onVideoSelect}
                key={video.etag}
                video={video} />
现在在VideoListItemonVideoSelected将起作用

     const VideoListItem = ({ video, onVideoSelected }) => {
     const imageUrl = video.snippet.thumbnails.default.url;

        return (
            <li onClick={() => onVideoSelected(video)} className="list-group-item">
               <div className='video-list media'>

                   <div className='media-left'>
                       <img className='media-object' src={imageUrl} />
                </div>

                  <div className='media-body media-heading'>
                      <div className='media-heading'>
                           {video.snippet.title}
                      </div>
                 </div>

              </div>
        </li >)
  }

请记住,当您访问从父级传递的函数时。您需要访问,因为这是您作为道具传递的方式

共享相关代码的第一件事。什么是视频列表?它是您的自定义组件还是库?您共享的代码不足以帮助修复。因此,请在视频上共享组件中的相关处理程序和状态代码选择组件视频列表的属性?完全同意@三思而后行,请共享一些相关代码。完成。共享了更多的代码。请注意,在我的整个代码中,即在所有组件中,我都在做onVideoSelected
     const VideoListItem = ({ video, onVideoSelected }) => {
     const imageUrl = video.snippet.thumbnails.default.url;

        return (
            <li onClick={() => onVideoSelected(video)} className="list-group-item">
               <div className='video-list media'>

                   <div className='media-left'>
                       <img className='media-object' src={imageUrl} />
                </div>

                  <div className='media-body media-heading'>
                      <div className='media-heading'>
                           {video.snippet.title}
                      </div>
                 </div>

              </div>
        </li >)
  }