0

我编写了一个基于反应的 Web 部件,它使用 Office UI Fabric React Panel 组件在屏幕右侧显示一个面板。webpart 在工作台中运行良好。

但是,当将其部署到现代页面时,面板会在 webpart 容器内呈现。因此,显示在页面内而不是屏幕右侧。

工作台结果

页面结果

在我的 React 组件的渲染方法中,我这样做:

public render(): React.ReactElement<IMyTasksProps> {
return (
  <div className={ styles.myTasks } >

    {
      this.state.loading &&
      <div className={ styles.container }>
        <div className={ styles.row }>
          <div className={styles.columnLoadingContent}>
            <Spinner size={SpinnerSize.large} />
          </div>
        </div>
      </div>
    }

    { !this.state.loading &&

      <div className={ styles.container }>
        <div className={ styles.row } onClick={this.onWebPartClick.bind(this)}>
          <div className={styles.columnMainIcon}>
            <Icon iconName="CheckList" className={iconClass} />
          </div>
          <div className={ this.state.myTaskItems.reduce((totalOpenTasks, taskItem) => totalOpenTasks + taskItem.props.openTasks, 0) == 0 ? styles.circleGreen : styles.circleRed }>{this.state.myTaskItems.reduce((totalOpenTasks, taskItem) => totalOpenTasks + taskItem.props.openTasks, 0)}</div>
          <div className={ styles.columnMainContent }>{escape(this.props.description)}</div>
          <div className={ styles.columnMainIcon }>
            <Icon iconName="ChromeBackMirrored" className={iconClass} />
          </div>
        </div>
        <div>
          <Panel type={PanelType.custom} customWidth="400px" isOpen={this.state.isOpen} onDismiss={this.onPanelClosed.bind(this)} >
            <h3>{escape(this.props.description)}</h3>
            <div className={ styles.myTasks } >
              <div className={ styles.taskContainer}>
                { this.state.myTaskItems
                    .sort((a,b) => (a.props.header > b.props.header) ? 1 : ((b.props.header > a.props.header) ? -1 : 0))
                    .map(taskItem => taskItem.render())
                }
              </div>
            </div>
          </Panel>
        </div>
      </div>
    }
  </div>
);

}

关于导致这种行为的任何建议?

提前致谢。

4

2 回答 2

1

在包解决方案中,domainisolated 设置为 true,这当然会在 iframe 中呈现 Web 部件。这就解释了奇怪的行为。现在就像一个魅力。

于 2020-06-30T09:37:56.377 回答
0

您在使用办公织物 ui 面板吗?

当我在我的环境中测试时工作正常。

在此处输入图像描述

于 2020-06-30T01:41:32.713 回答