Условный onClick от троичного - PullRequest
1 голос
/ 16 марта 2019

Я пытаюсь вызвать событие onClick в зависимости от местоположения пользователя.если местоположение '/ favourites', я хочу вернуть null, я попытался использовать троичный оператор, чтобы достичь этого, и не могу найти свою ошибку.вот что я пробовал:

             {this.props.location==='/favorites' ? null : 
                onClick={() => {
                    this.props.updateFavsState(this.props.character);
                    this.setState(prevState => ({
                      loved: !prevState.loved
                    }));
                  }}
                }

Ответы [ 2 ]

2 голосов
/ 16 марта 2019

Поместить логику в функцию и вызвать событие onClick функции, передать местоположение функции в качестве аргумента.

Решение:

handleClick = (location) => {
  if (location === '/favorites') {
    return null;
 }
  this.props.updateFavsState(this.props.character);
  this.setState(prevState => ({
    loved: !prevState.loved
  });
}

// somewhere in your render component
onClick={() => { handleClick(this.props.location)}}
0 голосов
/ 16 марта 2019

что вы хотите, это

onClick={this.props.location==='/favorites' ? null : 
   () => {
      this.props.updateFavsState(this.props.character);
      this.setState(prevState => ({
          loved: !prevState.loved
      }));
}}       
...