我正在使用http://react-bootstrap.github.io/轮播组件。里面有一个CarouselItem组件,所以看起来像这样:

        return (
          <Carousel>
            <CarouselItem key={obj.src1}>
              <EmbeddedVideo provider={obj.provider1} videoId={obj.src1} />
            </CarouselItem>
            <CarouselItem key={obj.src2}>
              <EmbeddedVideo provider={obj.provider2} videoId={obj.src2} />
            </CarouselItem>
            ...
          </Carousel>
        );


一切正常,但是如何获得CarouselItem道具?我想在EmbeddedVideo内部侦听CarouselItem.props.active的道具更改,以确定它是否可见,如果不可见,请在EmbeddedVideo组件内部暂停视频。

我相信我只是可以创建EmbeddedVideo insidie CarouselItem渲染方法,然后传递它的活动属性,但是我不想复制粘贴整个CarouselItem来仅添加一个元素。

那么我该如何修改呢?还是有其他方法可以通过CarouselItem控制EmbeddedVideo?

最佳答案

无论您在何处编写粘贴的return语句,都可以完全控制CarouselItem的属性。您似乎没有在CarouselItem上设置任何道具。

如果您正在谈论CarouselItem的状态,则需要将回调函数传递给CarouselItem作为道具,该道具将在其状态改变时被调用,以便父组件可以适当地响应。

10-06 11:38