透视:从未选择任何选项卡开始

Pivot: Start with no tabs selected

使用 Fabric React,我正在开发一个使用 Pivot 元素的组件。

首次显示组件时,不应选择任何选项卡,必须在选项卡下显示一些内容headers。单击选项卡后,相关内容将显示在那里。

documentation page 中的示例 "No Pivots Selected" 非常接近我想要的。在第一个渲染中,没有选择任何选项卡。我认为道具 selectedKey={null} 应该给出那个结果。

以下代码基于该示例,但即使第一次显示该组件,选项卡(第一个)也会显示为选中状态(例如,下方有蓝色下划线)。

有什么问题?

import * as React from "react";
import { Pivot, PivotItem } from "office-ui-fabric-react";

export interface MainProps {}

export const Main: React.FC<MainProps> = () => {
  const [selectedKey, setSelectedKey] = React.useState(null);

  const pivotItems: { [key: string]: React.ReactElement<any> } = {
    Settings: <div>Settings</div>,
    Controls: <div>Controls</div>
  };
  const _getTabId = (itemKey: string): string => {
    return `ShapeColorPivot_${itemKey}`;
  };

  const _handleLinkClick = (item: PivotItem): void => {
    setSelectedKey(item.props.itemKey);
  };

  return (
    <>
      <Pivot
        headersOnly
        selectedKey={selectedKey}
        getTabId={_getTabId}
        onLinkClick={_handleLinkClick}
        style={{ flexGrow: 1 }}
      >
        {Object.keys(pivotItems).map(name => (
          <PivotItem
            key={`pivotItemKey_${name}`}
            headerText={name}
            itemKey={name}
          />
        ))}
      </Pivot>
      {selectedKey ? pivotItems[selectedKey] : <div>Start</div>}
    </>
  );
};

我使用

做了一个快速代码笔
    <Pivot selectedKey={null} >

而且效果很好。您确定您使用的是最新版本的 Fabric 吗?