【问题标题】:How do I control style of material-ui SelectField如何控制material-ui SelectField的样式
【发布时间】:2017-11-30 13:02:04
【问题描述】:

我正在使用带有 react "material-ui": "^0.19.2" 的 material-ui 并试图在表格中放置一个 SelectField。这一切都很好,但是应用于选择组件的边距和/或填充正在做两件不需要的事情。首先是表格行现在调整为选择的高度,这使得整行的大小太高。其次,该行中其他所有内容的对齐方式已关闭。

我的代码:

<SelectField
    value={ props.value }
    hintText="Select location.."
    style={ {
        width: 150,
        padding: 0,
        margin: 0
    } }
    onChange={ (event, key, payload) => this.updateLocation(event, payload, props.index, props.original.something) }>
        { ::this.createMenu() }
</SelectField>

createMenu = () => {
    const { locations } = this.props.list;
    return locations.map((location, i) => {
        return <MenuItem key={ i } value={ location } primaryText={ location } />
    });
}

如果我可以控制呈现的组件 (Textfield??) 周围的样式,我会尝试使其适合,但 SelectField 上的样式道具似乎只能设置下拉列表的样式。

对我来说,另一个选择可能是为该字段添加一个弹出框并渲染一个自定义组件以将其附加到 - 但我在尝试使用它时运气不佳。

【问题讨论】:

  • 请添加您的代码以及到目前为止您尝试过的代码。
  • 完成 - 对此感到抱歉
  • 您是否尝试过覆盖&lt;SelectField&gt;style 属性?可以找到组件的APIhere
  • 上面的style prop不就是这样吗?
  • 但是当您似乎对高度有问题时,您只是在那里设置宽度。

标签: css reactjs material-ui


【解决方案1】:

SelectField 上的以下道具给了我我想要的:

   <SelectField
          value={props.value}
          hintText="Select location.."
          style={{
            width: 150,
            height: 15,
            lineHeight: 15,
            position: 'relative',
            textAlign: 'center',
            fontSize: '0.9em'
          }}
          menuStyle={{
            position: 'absolute',
            top: -12.5,
          }}
          underlineStyle={{
            position: 'relative',
            top: 20,
          }}
          onChange={(event, key, payload)=>this.updateLocation(event,payload,props.index,props.original.something)}
        >
          {
            ::this.createMenu()
          }
        </SelectField>

如果有人知道更好的方法,请添加答案,但现在这将回答我的问题。

【讨论】:

  • 你从哪里引用这个?我正在寻找一种为所选菜单项添加样式的方法。
【解决方案2】:
<b>Just add maxHeight={200} inside SelectField</b>

< SelectField
multiple

fullWidth = {true}

value={this.state.candidate_profile_arr}

onChange = {this.handleChange}

maxHeight = {200}

>

{this.state.profile.map((profile, i) =>

<MenuItem  value={profile.id} key={i} primaryText={profile.name} />)
}

</SelectField>

【讨论】:

  • 您好,欢迎来到 Stack Overflow。请注意,不建议仅使用代码回答。考虑添加一些上下文来解释代码的哪一部分解决了 OP 遇到的问题。
猜你喜欢
  • 1970-01-01
  • 2020-11-08
  • 2022-06-15
  • 2018-02-14
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 2020-05-27
相关资源
最近更新 更多