Я столкнулся с той же проблемой, что и мои приложения React.Для этого я всегда использую componentDidMount
, потому что он вызывается сразу после рендера.Но если вы вызовете функцию setState
, она автоматически вызовет рендер, так что ваши изменения появятся.Если страница обновится, состояние будет сброшено к значению по умолчанию.Итак, лучший способ добиться этого, например:
componentDidMount() {
const getDbAnswer = //fetch a signal from the db
if (getDBAnswer === true) {
this.setState({ fav: true })
else
this.setState({ fav: false })
}
Вы можете даже установить переменную с помощью localStorage.Помните, что localStorage принимает только string
значения, но не boolean
.
componentDidMount() {
const getDbAnswer = //fetch a signal from the db
if (getDBAnswer === true)
localStorage.setItem("fav", "true");
else
localStorage.setItem("fav", "false");
}
И тогда вы можете просто использовать его так:
<div className={localStorage.getItem("fav") === "true" ? "favme active" : "favme"}>