当前位置: 首页 > 面试题库 >

渲染后将焦点放在输入上

萧鹏云
2023-03-14
问题内容

呈现组件后,将焦点设置在特定文本字段上的反应方式是什么?

文档似乎建议使用引用,例如:

ref="nameInput"在渲染函数中的输入字段上进行设置,然后调用:

this.refs.nameInput.getInputDOMNode().focus();

但是我应该在哪里称呼它呢?我已经尝试了几个地方,但无法正常工作。


问题答案:

您应该这样做,componentDidMountrefs callback不是。像这样

componentDidMount(){
   this.nameInput.focus(); 
}



class App extends React.Component{

  componentDidMount(){

    this.nameInput.focus();

  }

  render() {

    return(

      <div>

        <input

          defaultValue="Won't focus"

        />

        <input

          ref={(input) => { this.nameInput = input; }}

          defaultValue="will focus"

        />

      </div>

    );

  }

}



ReactDOM.render(<App />, document.getElementById('app'));


<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.1/react.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.1/react-dom.js"></script>

<div id="app"></div>


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

  • 我有一个带有文本输入的React(15.3.2)组件。 (无论我在哪里说“渲染”,实际上都是渲染或取消隐藏;我已经尝试了两者。) 当输入元素模糊时,我使用文本输入渲染一个新组件。 我想给新的文本输入焦点。 我尝试了,,以及;我尝试了命名和函数s;我试过了。 聚焦本身是工作的,例如,一旦它被渲染,如果我点击初始输入,焦点会转移到新输入(这是一个错误,但与聚焦相比,微不足道)。 第一个输入有一个,它设

  • 我正在使用react,希望输入文本显示内存数据存储中的值,然后在值更改时更新存储,从而触发重新渲染。我看到的问题是,我的输入文本在重读时失去了焦点。我已经尝试设置key属性,覆盖shouldComponentUpdate并返回false,以防止react重新为组件命名,但没有效果。不管怎样,后者似乎不是一个好的长期解决方案。 从文档: 请注意,在未来的React中,可能会将ashidCompone

  • 我正在编写文本输入,并在事件中调用,因此React重新呈现我的UI。问题是文本输入总是失去焦点,所以我需要为每个字母重新聚焦:D。

  • 与设计某种指令来进行“focus()”调用相比,在控制器中执行此操作是否合理值得争论,但这不是我首先需要解决的问题。我的第一个问题是这段代码实际上不起作用。当我打开选项卡时,我可以看到它击中了函数中的断点,但该字段没有获得焦点。没有错误,只是不起作用。 我已经在Firefox和Chrome中测试过了。

  • 问题内容: 数据加载后是否可以通过控制器设置输入字段的焦点(在这种情况下,通过$ resource)? 通过ng-show隐藏输入,直到从API返回数据为止,但是我找不到将焦点设置在输入上的方法。我知道输入的ng- model名称,以及输入名称,这意味着我可以通过jQuery来做到这一点,但我宁愿使用AngularJS方式来做到这一点。 我在这里尝试了很多指令示例,但是它们似乎都集中在1.2 ng