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

如何聚焦样式组件?

戚逸清
2023-03-14

我有一个样式化的组件:

const StyledComponent = styled.div`
    ...
`;

当安装使用它的组件时,我想关注它:

class someComponent extends React.Component {
    componentDidMount() {
        this.sc.focus();
    }

    render() {
        return (
            <StyledComponent innerRef={(elem) => { this.sc = elem; }}>
                ...
            </StyledComponent>
        );
    }
}

这项技术不起作用-有解决方案吗?


共有3个答案

宰父劲
2023-03-14

尝试将自动聚焦道具传递到您的StyledComponent,如

邵繁
2023-03-14

此链接有一个React 16React的示例。createRef()和回调方法。

您是否尝试过设置autoFocus属性,或者这不适合您的用例?

芮念
2023-03-14

如果不使用tabIndex(常规超文本标记语言中的tabindex),则无法聚焦非交互式元素。div元素被认为是非交互式的(不同于锚点链接a和按钮控件按钮)。

如果希望能够聚焦此元素,则需要添加一个tabIndex道具。您可以使用。attrs如果需要,可以自动添加,这样您就不必每次都编写道具。

 类似资料:
  • 对于Material-UI按钮组件,我希望“focus”样式看起来与“focusVisible”样式相同。意思是,我希望它有相同的涟漪效果,可见,如果按钮是以编程方式或鼠标聚焦,就像按钮是以tab键聚焦一样。 我找到的一种解决办法是在元素聚焦之前对其调用,从而使键盘成为最后使用的输入类型。这将产生使按钮看起来像我想要的那样的效果,直到onMouseLeave事件(来自MUI )或另一个鼠标事件被激

  • 当组件挂载时,我试图专注于输入。输入组件是一个样式化的组件,因此我使用innerRef来获取对元素的引用。然而,当组件挂载时,输入不会得到焦点。我已经检查了该节点是否实际获得了对DOM节点的引用。我找不到我的逻辑有任何问题。谢谢你的帮助。

  • 问题内容: 我正在编写一个小型游戏,其中一个JFrame负责主游戏,另一个JFrame负责显示得分。问题是,当我完成构建它们时,分数JFrame总是最终集中精力!我试过调用scoreDisplay.toFront(),scoreDisplay.requestFocus(),甚至: 有什么办法可以使这项工作吗?预先感谢,约翰·穆拉诺 问题答案: 您是否考虑过将得分设置在与游戏框架相同的框架中? 其他

  • 问题内容: 我正在尝试以编程方式选择/聚焦一行。 我可以选择一行,但它不会呈现为 焦点 (未突出显示)。我已经尝试了以下代码的许多组合,但似乎没有任何效果。 是否可以通过编程突出显示行? 我正在使用JavaFX 2.2.21 问题答案: 尝试首先将请求放在表焦点上,然后将整个内容包装在一个文件中。

  • 我试图实现一个非常简单的用例,一个UI特性,其中: null 这些建议和类似的建议都不起作用。我也试着愚弄一下反应,看看我能不能做点什么!我使用了真实的DOM: 而且也没用。我甚至无法理解的一件事是这样的建议:将ref作为一个方法(我“猜测”),我甚至没有尝试它,因为我有很多这样的组件,我需要ref来进一步获得每个组件的值,我无法想象如果我的ref没有命名,我如何获得的值! 所以你能给出一个想法,

  • 我正在使用Popover,它用作Textfield的类似工具提示的帮助显示。它包含一个Label和一个TextArea作为内容,并在用户输入文本字段时创建。(通过) 我使用以下方式应用样式: (见文件) 这适用于文本区域,但仅部分适用于标签。 我的风格是这样的: 这在我的主窗口中效果很好。包括所有标签和文本区域。一切都得到深蓝色背景和白色文本。然而,对于Popover中的标签,它只将文本颜色更改为