我的目标是通过单击对话框中的按钮,在关闭对话框后将焦点设置在材质UI文本字段上。
当我从对话框组件中不存在的按钮调用它时,下面的代码可以工作:
focusTitle = () => {
this.setState({ isOpen: false });
this.myRef.current.focus();
};
按钮代码:
<Button onClick={this.focusTitle} />
我想关注的文本字段代码:
<TextField
inputRef={this.myRef}
label="Title"
id="title"
multiline
rowsMax="4"
value={this.state.title}
autoFocus={true}
className={classes.title}
helperText="Enter a catchy title"
onChange={e => this.onTitleChange(e.target.value)}
/>
但是一旦我试图从对话框中的按钮调用焦点标题(),它就不会触发焦点。
对话框代码:
<Dialog
open={this.state.isOpen}
onClose={this.focusTitle}
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitle id="alert-dialog-title">{"Warning"}</DialogTitle>
<DialogContent>
<DialogContentText id="alert-dialog-description">
Warning Message!
</DialogContentText>
</DialogContent>
<DialogActions>
<Button onClick={this.focusTitle} color="primary">
OK
</Button>
</DialogActions>
</Dialog>
有人知道为什么我的. point()在对话框中不起作用吗?如果我记录this.refs.my参考文献在这两种情况下,它显示完全相同的结果。
非常感谢。
您的对话框可能有一个结束动画。只要动画在运行,point()
函数就不会被正确调用。
要防止出现这种情况,请为动画创建回调或动画持续时间的超时,以在之后触发focus()
。这样地:
focusTitle = () => {
this.setState({ isOpen: false });
setTimeout(
function() {
this.myRef.current.focus();
}
.bind(this),
500 // Change to duration of the animation
};
如何在单击按钮后聚焦文本字段。我尝试使用自动对焦,但没有成功:示例沙盒
我想在一个材料UI按钮中居中文本,以便文本居中,而不管它旁边的图标。目前,图标包括在居中。 演示中的顶部两个按钮显示了它目前的外观,我正在寻找文本,因为它在底部两个按钮中出现。这些按钮的前后分别带有图标,而不影响按钮的文字。 最后两个是期望输出 https://codesandbox.io/s/material-demo-forked-tj8ko?file=/demo.js
我不知道如何在材质UI中居中放置按钮。这是我的代码: 我怎样才能使我的按钮居中?
我试图得到分页从材料UI,但我想中心的箭头和页数的按钮。 我试图通过创建
我有一个JFrame调用一个新的JDialog,这个JDialog有一个关闭它的按钮。 当JDialog关闭时,JFrame应该重新绘制。但是当我用按钮关闭JDialog时,什么也不会发生,当我用经典的“X”按钮关闭时,就不会发生这种情况。 这是来自JFrame的windowListener: 这里是JDialog中关闭JDialog的按钮的代码: 就像我说的,监听器中的JFrame需要在JDia