Нарушение инварианта: аргумент не является компонентом ReactComponent

Мне нужно найти offsetLeft компонента.

componentDidMount(){
        var tesNo =ReactDOM.findDOMNode(this.refs.dropDown.refs.input.offsetLeft)

    }
<ReactAutocomplete
    ref="dropDown"
   /*.......*/
/>

Во время отладки я получаю значение переменной tesNo. После этого я получаю эту ошибку:

Подумайте о том, чтобы добавить в дерево границу ошибок, чтобы настроить поведение при обработке ошибок. Посетите этот сайт, чтобы узнать больше о границах ошибок. Нарушение инварианта: аргумент не является компонентом ReactComponent

Как решить эту ошибку?


person Jane Fred    schedule 01.03.2019    source источник


Ответы (1)


Сам нашел ответ.

Поскольку я использую версию реакции: "^16.3.2", я использовал API createRef().

class Patient extends React.Component{
constructor(props){
    super(props)
    this.state = {
      postn:0
    }
this.dropDown=React.createRef()
}
componentDidMount(){
    let left = this.dropDown.current.refs.input.offsetLeft;
        this.setState({postn:left})
}
<ReactAutocomplete
    ref={this.dropDown}
   /*.......*/
/>
}
person Jane Fred    schedule 04.03.2019