2016-10-13 13 views
0

У меня есть универсальное приложение React + Redux, которое отображает первую страницу экрана на стороне сервера, а затем на стороне браузера ReactJS завершат остальные задачи.Как получить доступ к refs после завершения рендеринга первого экрана с завершенным сервером на стороне приложения React?

В настоящее время я встретил вопрос, я не могу получить доступ к рефам с помощью 1. this.refs[xxx] 2. ref={(ref) => this.xxx = ref}

componentDidMount() { 
    // The code in handleScroll cannot get this.xxx, as it would print the error 
    // Uncaught TypeError: Cannot read property 'xxx' of null 
    window.addEventListener('scroll', this.handleScroll); 
    // Code below can get the rect numbers. 
    console.log(this.xxx.getBoundingClientRect()); 
} 

handleScroll(event) { 
    if (this.xxx !== null) { 
    console.log(this.xxx.getBoundingClientRect()); 
    } 
} 

мне нужно получить элемент ReactDom в то время как пользователь прокручивает страницу и сделать некоторые вещи на этот элемент. Но если я могу получить доступ только к refs в componentDidMount(), как я могу это сделать?

Спасибо.

+0

делает ваш срабатывают компонент получать установленный после рендеринга в браузере? – abhirathore2006

+0

@ abhirathore2006 да, компонент был отображен в браузере, после чего все ссылки refs доступны в методе componentDidMount. – enterzhu

+0

, так что ваша проблема решена правильно? – abhirathore2006

ответ

0

Попробуйте отладить, поместите контрольную точку в handleScroll, чтобы проверить, что все, что вы получаете в «этом». Вы можете видеть какие-либо другие ссылки или состояние?

Вы можете попробовать связывание «это» в handleScroll, если это помогает, как:

window.addEventListener('scroll', this.handleScroll.bind(this)); 
+0

Я выяснил проблему и решение по дороге домой, и вы правы. Благодарю. – enterzhu

 Смежные вопросы

  • Нет связанных вопросов^_^