【发布时间】:2018-05-22 02:26:14
【问题描述】:
我有以下组件:
export default class VideoArchiveContent extends React.Component {
constructor() {
super();
this.state = {
videos: []
}
}
componentDidMount() {
this.VideosTracker = Tracker.autorun(() => {
Meteor.subscribe('videos');
const videos = Videos.find().fetch();
this.setState({ videos })
});
};
componentWillUnmount() {
this.VideosTracker.stop();
};
renderVideos = () => {
return this.state.videos.map((video) => {
return <div key={video._id}>{video.embed}</div>
});
};
render() {
return (
<div>
{this.renderVideos()}
</div>
)
}
};
我希望 iframe 呈现到屏幕上。渲染的是 iframe 字符串。
如果我像这样将 iframe 放在 return 语句中:
return (
<div>
<iframe src="https://player.vimeo.com/video/270962511" width="500" height="281" frameborder="0" allowfullscreen></iframe>
</div>
)
iframe 按预期呈现。
有解决办法吗?
【问题讨论】:
-
什么是
video.embed,第一个代码块中的iframe在哪里? -
您尝试过使用门户网站吗? devdocs.io/react/portals
-
@Sagiv video.embed 是 iframe=。 iframe 位于 Mongo 数据库中。它遍历每个 iframe 代码。
-
您应该提供更好的上下文。显示输出和错误有助于调试代码。首先,您要显示的 iframe 没有 src。其次,我发现这对我很有用video-react.js.org