javascript - 单击输入 : Material-Ui 时保持按钮聚焦

标签 javascript reactjs material-ui

我有下一个 Material -ui 对话框:

enter image description here

但是当我点击输入字段时,社交按钮会散焦,我不希望这样:

enter image description here

按钮:

export const SocialButton = (props: SocialButtonProps) => {
  const classes = useStyles();
  return (
    <IconButton
    centerRipple={true}
    className={classes.socialButton}
    size="small"
    onClick={props.onClick}
    aria-label="add"
    component="span"
    disableRipple
  >
     {props.icon}
  </IconButton>
);

};

风格:

export const useStyles = makeStyles((theme: Theme) =>
  createStyles({
    socialButton: {
      '&:focus': {
        boxShadow: `0 0 0 0.1rem ${theme.palette.primary.main}`,
      },
    },
  }),
);

组件:

      <Grid container>
        <Grid item>
          <SocialButton
            icon={<BehanceLogo />}
            onClick={() => setSocialPlatform('behance')}
          />
          ....
        </Grid>
      </Grid>

最佳答案

只需创建一个具有相同样式的“事件”类并保存按钮应处于事件状态的状态(使用 useState )。

你可以这样做:

const [activeButton, setActiveButton] = useState(null)

...

if (activeButton === 'behance')
    behanceStyle = classes.active // Use useStyle to create the 'active' class
          
return (
    <SocialButton
        className={behanceStyle}
        icon={<BehanceLogo />}
        onClick={() => {
            setSocialPlatform('behance')
            setActiveButton('behance')
        }}
    />
  )

关于javascript - 单击输入 : Material-Ui 时保持按钮聚焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68377813/

相关文章:

javascript - 如何快速将剪贴板的内容粘贴到 Chrome 开发控制台中的变量中?

javascript - Facebook Like 按钮插件未显示在我的浏览器中

javascript - React componentWillReceiveProps 不更新状态

ajax - React Server 端 TypeError : Router. use() 需要中间件函数但得到一个字符串

javascript - Material-UI 组件的问题

reactjs - 使用 Material ui 的图片库和对话框

javascript - 呈现路线后,将 V3 Google map 置于 route 心

javascript - undefined 不是 React Native 对象

javascript - 多 React 组件架构

material-ui - 你能说出哪个 SelectField 触发了 onChange 吗?