I
I
Igor Nistakov2016-12-03 02:30:43
React
Igor Nistakov, 2016-12-03 02:30:43

How to dynamically set the default state of a component in ReactJS?

I want to perform a check before setting the initial state to the component, how can I do this?

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

Thank you!

Answer the question

In order to leave comments, you need to log in

2 answer(s)
N
Ninja Mate, 2016-12-03
@victorzadorozhnyy

use

componentWillMount(){
if(this.props.listeningIsFavorite===true)
...
}else

I understand that you are passing something from another element as props

I
Igor Nistakov, 2016-12-03
@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('Объявление не найдено в списке избранного')
        }
      }
    }
  }

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question