0

我正在使用 React Framework 开发 Excel Web Addin。一切似乎都很好,但大多数时候办公室没有初始化(isOfficeInitialized 为假),因此任务窗格(侧边栏)根据以下渲染条件继续显示加载 gif。

render() {
        const { title, isOfficeInitialized } = this.props;        
        if (!isOfficeInitialized) {
            return (
                <Progress
                    title={title}
                    logo={require("./../../../assets/logo-filled.png")}
                    message="Please sideload your addin to see app body."
                />
            );
        }

我必须在侧边栏中右键单击并刷新多次,然后页面才能成功加载。这在两种模式下都会发生:在安装了 Office 365 并在 Office Central Admin 中部署版本的 Windows 上调试时,然后从插入 => 获取插件对话框安装插件。

以下是未更改的任务窗格文件夹中的“Index.js”内容(即默认使用项目创建)。

import "office-ui-fabric-react/dist/css/fabric.min.css";
import App from "./components/App";
import { AppContainer } from "react-hot-loader";
import { initializeIcons } from "office-ui-fabric-react/lib/Icons";
import * as React from "react";
import * as ReactDOM from "react-dom";
import './taskpane.css';
/* global document, Office, module, require */

initializeIcons();

let isOfficeInitialized = false;

const title = "Add-in";

const render = (Component) => {
  ReactDOM.render(
    <AppContainer>
      <Component title={title} isOfficeInitialized={isOfficeInitialized} />
    </AppContainer>,
    document.getElementById("container")
  );
};

/* Render application after Office initializes */
Office.initialize = () => {
  isOfficeInitialized = true;
  render(App);
};

/* Initial render showing a progress bar */
render(App);

if (module.hot) {
  module.hot.accept("./components/App", () => {
    const NextApp = require("./components/App").default;
    render(NextApp);
  });
}

请注意,当我们启动 excel 并打开任务窗格时,有时页面会成功加载,但大多数情况下它不会并且必须多次刷新。此外,即使它在一个 Excel 文档中打开并且我们打开另一个文档,它也不会在那里加载(初始化)。

因为我是新手所以不知道它的内在故事。所以任何提示请...

4

0 回答 0