当前位置: 首页 > 知识库问答 >
问题:

如何设置materialUI文本字段的焦点?

史骏
2023-03-14

如何设置材质ui文本字段组件的焦点?

componentDidMount() {
    ReactDom.findDomNode(this.refs.myControl).focus()
}

我已经尝试了上述代码,但不起作用:(

共有3个答案

邵星光
2023-03-14

自动聚焦也不适用于我,也许是因为这是一个在顶级组件加载时没有挂载的组件。我不得不做一些更复杂的事情来让它工作:

function AutoFocusTextField(props) {
  const inputRef = React.useRef();

  React.useEffect(() => {
    const timeout = setTimeout(() => {
      inputRef.current.focus();
    }, 100);

    return () => {
      clearTimeout(timeout);
    };
  }, []);

  return <TextField inputRef={inputRef} {...props} />;
}

请注意,由于某些原因,如果没有设置超时,它将无法工作。有关更多信息,请参阅https://github.com/callemall/material-ui/issues/1594.

戚祺
2023-03-14

对于React 16.8.6,您应该使用TextField的inputRef属性来设置焦点。我尝试了ref属性,但它不起作用。

<TextField
  inputRef={input => input && input.focus()}
/>

材料-ui doc说:

inputRef:使用此属性将ref回调传递给本机输入组件。

公沈义
2023-03-14

您可以使用自动聚焦属性。

<TextField value="some value" autoFocus />
 类似资料:
  • 我有一个Material UI文本字段作为输入,我需要强制输入大写文本。我曾尝试使用作为样式属性的一部分,但这似乎不起作用。我的组件中的所有其他样式都已正确应用,但textTransform未正确应用。 我也尝试过使用标准样式方法将我的样式作为道具传递给组件,但我得到了相同的结果。 我的组件: 输出:

  • 问题内容: 我有一个用netbeans开发的应用程序,我想在显示面板时将焦点设置为一定。我已经阅读了许多文章,并尝试了各种方法,但没有奏效。主要问题之一是在哪里放置所需的代码,我认为在我的情况下是 有一些指示使用Window Listener的帖子,但是随着netbeans生成GUI,我无法看到如何实现接口,因为我无法编辑创建jPANEL等的代码。整个过程非常令人沮丧,我真的没有相信这应该很困难。

  • 在UWP应用程序(Windows10)上,我在ListView中显示了一个记录列表。

  • 如何设置文本字段中文本的颜色?例如,将“你好和谐”字段中的“和谐”字体设置为红色。Android代码实现如下: SpannableStringBuilder ssb=新的SpannableStringBuilder();ssb。setSpan(新的ForegroundColorSpan(getCurrentHintTextColor()),i,i 1,0);

  • 问题内容: 呈现组件后,将焦点设置在特定文本字段上的反应是什么? 文档似乎建议使用引用,例如: 在渲染函数中的输入字段上进行设置,然后调用: 但是我应该在哪里称呼它?我已经尝试了几个地方,但无法正常工作。 问题答案: 您应该这样做,而不是。像这样

  • 我一直在试图找出如何样式的材料ui TextField组件。 我的类创建如下: 我的问题是,我似乎无法让文本字段的颜色变成白色。我似乎能够将样式应用于整个文本字段(因为宽度样式工作等)...但是我认为问题是我没有将样式应用到链的更下游和实际输入中。 我曾试图寻找其他关于传递输入道具的答案,但没有成功。 我已经尽了我最大的努力,但我想我需要问问是否有人知道我做错了什么。 它现在看起来是什么样子