欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

選擇組件中菜單項上的材質UI工具提示zIndex

劉柏宏2年前9瀏覽0評論

我的問題很簡單,我有一個& lt工具提示& gt圍繞a & lt選擇& gt組件,當我單擊Select時,工具提示會顯示在菜單項上,如下所示:

正常行為:

Tooltip without MenuItem

不太正常的行為:

Tooltip over MenuItem

所以我保留了Material-UI和Tooltip的所有默認值:zIndex: 1500,但是據我所見,MenuItem沒有默認值。我試圖將MenuItem的zIndex設置為1501,但它仍然有相同的行為。

我想知道有什么干凈的方法可以把工具提示留在菜單項后面,如果不可能的話,就在選擇菜單項打開時隱藏工具提示...

我的代碼如下所示:

<Tooltip title={'Filter by status'}>
    <Select value={this.state.status} onChange={this.handleChange.bind(this, Filter.Status)}>
        {statuses.sort(this.filterItemSortFn).map(item => {
            return (<MenuItem style={{zIndex: 1501}} value={item}>{item}</MenuItem>);
        })}
    </Select>
</Tooltip>

如果我將工具提示的zIndex設置為一個較小的值,并且它隱藏在menuItems的后面,但是我真的不想使用默認值,因為它也會干擾其他的zIndex值。

我做了一個代碼沙箱:https://codesandbox.io/s/rn68z4xlo

###Liam的回答完全不正確,Joe的不適用MUI v4。

Tooltip組件從Popper組件獲取其z索引,因此僅更改Tooltip的z索引不會有任何效果。您需要從工具提示中將z索引向上傳遞給Popper。

像這樣:

<Tooltip title={"foo"} PopperProps={{style:{zIndex:0}}}>

# # #這是材質界面工具提示中的一個錯誤,我猜它已經在新版本中修復了

您可以通過在工具提示中添加zIndex來解決這個問題

<Tooltip title={"Message"} style={{ zIndex: '1' }}>
        <Select 
          value={this.state.name}
          onChange={this.handleChange}
          input={<Input id="select-multiple" />}
          MenuProps={MenuProps}
        >
          {names.map(name => (
            <MenuItem key={name} value={name}>
              {name}
            </MenuItem>
          ))}
        </Select>
      </Tooltip>

或者如果你想完全隱藏它,如果菜單打開使用這個代碼

<Tooltip title={"Message"} 
            onClick={() => this.setState({ tooltip: !this.state.tooltip })}
          style={this.state.tooltip ? {display: 'none'}:{ zIndex: '1' }}>
            <Select 
              value={this.state.name}
              onChange={this.handleChange}
              input={<Input id="select-multiple" />}
              MenuProps={MenuProps}
            >
              {names.map(name => (
                <MenuItem key={name} value={name}>
                  {name}
                </MenuItem>
              ))}
            </Select>
          </Tooltip>

定義的工具提示狀態

class MultipleSelect extends React.Component {
  state = {
    name: [],
    tooltip: false,
  };

https://codesandbox.io/s/0xrlmv96vl

###MUI 5:對于那些對模態和工具提示有問題的人來說,這將有所幫助:

const Tooltiptheme = createTheme({
 components: {
    MuiTooltip: {
      styleOverrides: {
        tooltip: {
          // overrides tooltip
        },
        popper: {
         // overrides the popper
          zIndex: 700 + '!important',
        }
      },
    },
  },
  });