Реакция держать фокус на Blur - PullRequest
0 голосов
/ 05 июня 2018

У меня есть компонент, который запускает focus() для ref ref во время componentDidMount и componentDidUpdate.Также у меня есть функциональность, которая не срабатывает при закрытии, когда мы нажимаем снаружи.Когда я нажимаю снаружи onBlur, я снова запускаю focus, чтобы сосредоточиться на элементе.Каков наилучший подход?и почему в некоторых случаях я видел, что лучше использовать setTimeout onblur?

export class Test extends Component {
    componentDidMount = () => this.focusContainer()
    componentDidUpdate = () => this.focusContainer()

    container = React.createRef()
    focusContainer = () => this.container.current.focus()

    render = () => {
       return (
         <div
                style={{outline: 'none'}}
                onKeyPress={this.captureInput}
                onBlur={this.focusContainer} // or                 onBlur={() => setTimeout(() => this.focusContainer(), 0) } - why ?

                ref={this.container}
                // tabIndex is needed for focus/blur to work on non input type elements.
                tabIndex={0}
            >
              <img src={scanTag} style={{maxWidth: '100%'}} alt='scan tag via scanner' />
          ..........
    </div>
       )
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...