【问题标题】:React focus input for Modal/Dialog反应模态/对话框的焦点输入
【发布时间】:2016-03-06 04:15:31
【问题描述】:

我正在使用 React 14 和 ES6/7。我有一个模态对话框,它有几个输入,当它打开时,我想专注于第一个输入。该对话框可以正常打开和关闭,并且它的 open 属性按预期切换(为简洁起见,下面省略了代码,因为它并不真正相关)。

我已经尝试过 autoFocus 和 componentDidUpdate 并且没有控制台错误,但似乎没有任何东西可以提供输入焦点。我错过了什么?我希望 componentDidUpdate 能够工作,但它没有......

Dialog.jsx:

...

componentDidUpdate(nextProps){
  console.log(this.props)
  if(this.props.open) { //<-THIS IS TRUE AT THIS TIME!!!
    this.refs.emailInput.focus(); //<-NO ERRORS HERE OR AT ALL, BUT NO FOCUS EITHER
  }
}

...
render() {
  return (
    <form onSubmit={this.props.submitLogin} noValidate>
      <Dialog {...this.props}
        key="loginDialog"
        title="Login" actions={loginActions}>
        <input 
           ref="emailInput"
           key="emailField"
           placeholder="Email"
           type="email"
           autoFocus
        />
        <input
          key="passwordField"
          placeholder="Password"
          type="password"
        />
      </Dialog>
    </form>
  )
}

...

TIA!

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    原来这是 Material UI 的组件中的一个错误,他们最近已修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 2012-04-12
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多