Rumah > Soal Jawab > teks badan
P粉8845486192023-09-03 18:40:35
Nampaknya projek (komuniti maju) react-forge-viewer tidak dikemas kini dalam tempoh 3 tahun yang lalu. Untuk menolak sebarang isu dalam projek ini, saya syorkan anda menggantikannya dengan pembalut React ringkas anda sendiri. Sesuatu seperti:
<link rel="stylesheet" href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.css">
<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/viewer3D.js"></script>
// Viewer.js import React from 'react'; import './Viewer.css'; const Autodesk = window.Autodesk; const ACCESS_TOKEN = '...'; const URN = '...'; async function initializeViewer(container) { return new Promise(function (resolve, reject) { Autodesk.Viewing.Initializer({ accessToken: ACCESS_TOKEN }, function () { const viewer = new Autodesk.Viewing.GuiViewer3D(container); viewer.start(); resolve(viewer); }); }); } async function loadModel(viewer, urn) { return new Promise(function (resolve, reject) { function onDocumentLoadSuccess(doc) { resolve(viewer.loadDocumentNode(doc, doc.getRoot().getDefaultGeometry())); } function onDocumentLoadFailure(code, message, errors) { reject({ code, message, errors }); } Autodesk.Viewing.Document.load('urn:' + urn, onDocumentLoadSuccess, onDocumentLoadFailure); }); } class Viewer extends React.Component { constructor(props) { super(props); this.ref = React.createRef(); this.viewer = null; } componentDidMount() { if (!this.viewer) { this.viewer = initializeViewer(this.ref.current); this.viewer.then(viewer => loadModel(viewer, URN)); } } render() { return ( <div className="viewer" ref={this.ref}> </div> ); } } export { Viewer };
/* Viewer.css */ .viewer { position: relative; width: 800px; height: 600px; }
<Viewer />
ke dalam aplikasi anda. Jika masalah berterusan walaupun dengan komponen React yang ringkas ini, cuba gunakan komponen tersebut dalam aplikasi React kendiri untuk menolak sebarang isu yang berpotensi yang diperkenalkan oleh persekitaran Sharepoint.