JSX:
var Button = require("react-bootstrap").Button;
var Input = require("react-bootstrap").Input;
var MyClass = React.createClass({
        onclick: function () {
           this.refs.email.getDOMNode().focus();
           console.log('DOM element', this.refs.email.getDOMNode());
        }
        render: function () {
          return (
             <div>
                <Button onClick={this.onlick}>Login</Button>
                <Input ref='email' type='email' />
             </div>
            );
        },
    });  
Примечания:
-  Поле ввода - это класс react-bootstrap.Input.
- Концепция getDOMNode(). focus() - это Facebook для взаимодействия с документами
Когда запускается кнопка onclick handler, поле ввода электронной почты должно получать фокус, но этого не происходит. Я обнаружил, что класс Input-bootstrap Input field представляет собой реальное поле ввода DOM внутри оберточного div. Это результат работы console.log:
<div class="form-group" data-reactid=".1awy8d4e9kw.1.3.$=1$3:0.0.0.1.0">
  <input class="form-control" type="email" data-reactid=".1awy8d4e9kw.1.3.$=1$3:0.0.0.1.0.1:$input">
</div>
Похоже, что вход не получает фокус, потому что фокус применяется к оберточному div, который его отклоняет (я использую document.activeElement в консоли для проверки).
Вопрос в том, как сфокусироваться на реальном элементе input?
Примечание:
Немного несвязанный, но React уважает свойство autoFocus. Это полезно, если фокус необходимо установить сразу после рендеринга. Тем не менее, это не заменяет программный путь.
