Dan*_*dry 5 npm reactjs pannellum
我尝试在我的React组件中使用Pannellum NPM软件包。
Pannellum的API可以这样使用:
pannellum.viewer('panorama', {
"type": "equirectangular",
"panorama": "https://pannellum.org/images/alma.jpg"
});
Run Code Online (Sandbox Code Playgroud)
我认为以下代码:
import React, { Component } from 'react';
import './App.css';
import pannellum from 'pannellum';
class App extends Component {
componentDidMount() {
pannellum.viewer('panorama', {
"type": "equirectangular",
"panorama": "https://pannellum.org/images/alma.jpg"
});
}
render() {
return (
<div id="panorama"></div>
);
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
会工作。但是事实并非如此。我懂了TypeError: __WEBPACK_IMPORTED_MODULE_2_pannellum___default.a.viewer is not a function。
还尝试了另一个不同的import语句:
import { pannellum } from 'pannellum';,const pannellum = require('pannellum');但是这些也不起作用。
有趣的是,Pannellum的API javascript代码已捆绑在一起,一旦我注释掉componentDidMount()并在页面加载后尝试通过Chrome Dev Tools控制台使用该API,它就可以工作。但是,没有应用CSS样式。
我显然做错了。我已经看过360-react-pannellum软件包的源代码,但是我需要访问整个API,而不仅仅是渲染,因此它不符合我的需求。
谢谢您的帮助。
查看pannellum的源代码,它没有导出任何模块而是将所有内容放在window对象上。
尝试导入代码并直接从窗口使用它。
import React, { Component } from 'react';
import './App.css';
import 'pannellum';
class App extends Component {
componentDidMount() {
window.pannellum.viewer('panorama', {
"type": "equirectangular",
"panorama": "https://pannellum.org/images/alma.jpg"
});
}
render() {
return (
<div id="panorama"></div>
);
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |