Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ReactJS Refs не работают

Илюшка Жиленков Ученик (90), на голосовании 1 год назад
Когда я назначаю реф на какой то элемент, то я могу получить доступ к нему только когда изменяется стейт и компонент перерисовывается

 import React, { Component } from 'react' 
import RreactDOM from 'react-dom'
import './style.css'

class App extends Component {

constructor(props) {
super(props)
this.refToSliderBlock = React.createRef()
this.state = {
offset: 0,
}
}

toRight = () => {
if (this.state.offset >= 0) {
this.setState(() => {
return { offset: -3420 }
})
}
this.setState((state) => {
return { offset: state.offset += 1140 }
})
}


toLeft = () => {
if (this.state.offset <= -2280) {
this.setState(() => {
return { offset: 0 }
})
} else {
this.setState((state) => {
return { offset: state.offset -= 1140 }
})
}
}

render() {
console.log(this.refToSliderBlock.current)
return (
<>

Где то здесь есть блок с рефом refToSliderBlock, не могу
показать тк не вмещется в максимальную длину вопроса)


)
}
}
Дополнен 1 год назад
В до изменения стейта в консоль выводиться null (В рендере есть conslole.log)
Голосование за лучший ответ
dEN5 Знаток (363) 1 год назад
все правильно, тк в начале идет монтирование и так у рефа начальное значение null , то он его и предоставляет. Значит тебе нужно подписаться через useState на изменение рефа и изменять bolean стейт на имеющиеся null значение в ref.
Что ты хочешь добиться используя это?
Похожие вопросы