Мне нужно обновить стили классов кнопок после загрузки страницы. Попытка сделать это в Render (), и я видел, как люди говорят о setTimeout и setInterval, но этот другой способ с событием работает в течение некоторого временикарта все в рендере. Мне нужно проверить локальное хранилище и тому подобное, и хочу обновить цвет кнопки и текст, поэтому я перепробовал много вещей, но потом попробовал window.addeventlistener ... this.handleload
Кажется, работает только частьтого времени ... это происходит слишком быстро, я не хочу добавлять таймеры как "хак", но я застрял, не зная, как это сделать.
Я также пытался вызывать функции в рендере. Не уверен, почему это так сложно сделать.
handleLoad() {
alert('always runs from outside loop');
// loop ONLY runs after refreshing browser several times
for (var i = 0; i < this.state.data.length; i++) {
//rarely makes it in
alert('made it');
document.getElementById("4534552").classList.remove('btn-warning');
}
}
componentDidMount() {
webApi.get('sai/getofflinemembers?userId=N634806')
.then((event) => {
//........
}
// THIS is what i call
window.addEventListener('load', this.handleLoad);
}
render() {
const contents = this.state.data.map(item => (
<button id={item.Member_ID} type="button" onClick={(e) => this.downloadUser(item.Member_ID,e)}
className="btn btn-warning">Ready for Download</button>
)
}
Мне просто нужно вызвать функцию, перебрать все DOM и изменить ее при необходимости. Теперь я подумал о том, как реагировать на создание виртуального DOM, к которому я не знаю.
Необходимость проверить локальное хранилище, если элемент уже установлен, затем установить класс кнопки начальной загрузки на определенный цвет итекст, а также.
Мысли?