Как динамически задать дефолтное состояние компоненту в ReactJS?

Хочу выполнить проверку перед тем как задать initial state компоненту, как можно это сделать?

class MyComponent extends Component {
  constructor(props) {
    super(props);
    this.state = {
      counter : 0,
      step : 0,
      listeningInFavorite : true 
  }


Спасибо!
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 2
victorzadorozhnyy
@victorzadorozhnyy
используйте
componentWillMount(){
if(this.props.listeningIsFavorite===true)
...
}else

я так понимаю что вы что то из другого элемента передаете как props
Ответ написан
belloni
@belloni Автор вопроса
componentWillMount() {
    if(Meteor.user()) { //если пользователь авторизован
      var userFavoriteList = Meteor.user().profile.favoritesList; //получаем список избранного пользователя
      var currentListeningId = this.props.listeningId; //текущее объявление

      for(let i; i < userFavoriteList.length; i++) { 
        //Если id текущего объявления совпали с id из избранного
        if(userFavoriteList._id === currentListeningId) { 
          //Меняем на правду
          this.setState({
            listeningInFavorite : true
          });
          console.log('Объявление найдено')
        } else { //Если нет то меняем на ложь
          this.setState({
            listeningInFavorite : false
          });
          console.log('Объявление не найдено в списке избранного')
        }
      }
    }
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы