首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在带有Select属性的资料ui Textfield中增加“.”中的最小宽度以及如何访问带有输入装饰的Selectfield

如何在带有Select属性的资料ui Textfield中增加“.”中的最小宽度以及如何访问带有输入装饰的Selectfield
EN

Stack Overflow用户
提问于 2021-01-22 08:59:02
回答 2查看 883关注 0票数 0

当我在chrome dev tools中观察到时,在.中有一个‘16 is’的最小宽度。我在这里使用的是带有Select属性的Material。我要把它重写为“25 to”此外,当我点击输入装饰选择字段不工作。我不明白怎么做,我正在提供下面的代码框链接。任何帮助都是值得感激的。提前谢谢。

沙箱链接:https://codesandbox.io/s/material-demo-forked-hjrb6?file=/demo.tsx

截图:

代码:

代码语言:javascript
复制
import React from "react";
import { createStyles, makeStyles, Theme, fade } from "@material- 
ui/core/styles";
import {TextField, Typography} from "@material-ui/core";
import { TextValidator } from 'react-material-ui-form-validator';
import InputAdornment from '@material-ui/core/InputAdornment';
import MenuItem from '@material-ui/core/MenuItem';

 const currencies = [
 {
value: 'USD',
label: '$',
 },
 {
  value: 'EUR',
 label: '€',
  },
 {
  value: 'BTC',
 label: '฿',
 },
 {
value: 'JPY',
label: '¥',
},
];

 const useStyles = makeStyles((theme: Theme) =>
 createStyles({
 root: {
  "& > *": {
    margin: theme.spacing(1),
    width: "25ch"
  }
  }
 })
 );

  const useStylesReddit = makeStyles((theme: Theme) =>
 createStyles({


  selectClass: {
  minWidth: '20px'
  }

 })
);

 export const MovingOutRedditTextField = (TextFieldProps) => {
 const classes = useStylesReddit();
  // const iconStyles = makeIconStyles();
  const { id } = TextFieldProps;
   return (
   <TextField
  id={id}
  InputLabelProps={{
    shrink: true,
    
  }}
  
  InputProps={{
    classes,
    disableUnderline: true,
    endAdornment: (
      <InputAdornment position="end">
        <Typography
          color="textSecondary"
        >
          currency
        </Typography>
      </InputAdornment>
    )
   }}
  {...TextFieldProps}
   />
  );
 };

 export default function BasicTextFields() {
 const classes = useStyles();
 const [currency, setCurrency] = React.useState('EUR');

 const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  setCurrency(event.target.value);
 };

  return (


   <MovingOutRedditTextField
  select
  classes={{select:classes.selectClass}}
  required
  style={{width:'400px'}}
  label="Return"
  id="securityDepoistReturn"
  value={currency}
  
  variant="filled"
>
  {currencies.map((option) => (
        <MenuItem key={option.value} value={option.value}>
          {option.label}
        </MenuItem>
      ))}
  </MovingOutRedditTextField>
  );
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-22 09:49:46

使用select的select支柱来锁定classes类。

代码语言:javascript
复制
<Select
  classes={{select:classes.selectClass}}
>
  <MenuItem value="">
    <em>None</em>
  </MenuItem>
  <MenuItem value={10}>Ten</MenuItem>
  <MenuItem value={20}>Twenty</MenuItem>
  <MenuItem value={30}>Thirty</MenuItem>
</Select>
代码语言:javascript
复制
const useStyles = makeStyles((theme: Theme) =>
  createStyles({    selectClass:{
      minWidth:'25px'
    }
  }),
);

更新

根据最近的评论,使用了TextBox,并传递了select支柱,使其成为一个选择框。因此,在本例中,要操作select的min-width,可以将类对象传递到TextBoxSelectProps支柱中。SelectProps中的道具应用于Select元素。

代码语言:javascript
复制
<TextField
  SelectProps={{
      classes:{
        select:classes.selectClass
      },
   }}
{...other props}
/>

票数 1
EN

Stack Overflow用户

发布于 2021-01-22 10:07:14

代码语言:javascript
复制
   const useStyles = makeStyles((theme: Theme) =>
  createStyles({
    select: {
      minWidth: "200px !important",
      width: 2
    }
  }),
);


<Select
      labelId="demo-controlled-open-select-label"
      id="demo-controlled-open-select"
      className={classes.select}
 >

!important允许您重写默认值,但尽量避免其过度使用。

在select组件中,只在className中调用它,min-width用于响应,您仍然需要给出它的宽度,但是如果你定义了最小宽度,那么它不会比定义的最小宽度小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65842087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档