本文将分享一个开发中遇到的问题,最近在项目中使用 Ocx 播放视频,但是调用 Ocx 接口成功了,但是界面没有图像。项目采用 React + UmiJS来实现。
具体原因不是很清楚,根据猜测可能跟 React 的生命周期、虚拟DOM有关系吧!!!
问题代码(Player.js):
import React, { Component } from 'react'; class Player extends Component { notInstall() { console.log("没有安装ocx插件"); } componentDidMount() { // 在这里开始去调用方法播放视频,但是出问题了 } render() { return ( <div> {/* 播放窗口 */} <object id="playBackPanel" objIndex="1" width="800px" height="500px" classid="CLSID:039A2134-AE3A-48FF-A4AC-C23C789983EE" onerror={this.notInstall}></object> </div> ); } } export default Player;
修复后的代码(Player.js):
export default function() { setTimeout(function(){ // 这里面去调用方法播放视频,OK }, 1000); return ( <div> {/* 播放窗口 */} <object id="playBackPanel_1" objIndex="1" width="1000px" height="500px" classid="CLSID:039A2134-AE3A-48FF-A4AC-C23C789983EE" onerror="notInstall()"></object> </div> ); }
虽然能够播放视频了,但是不知道这是为什么???
该文章仅仅是将过程记录,希望对你有参考价值。