Как переключить логическое значение в реагировать на родное? - PullRequest
0 голосов
/ 14 марта 2020

Я изо всех сил пытаюсь переключить состояние Boolean с true на false, когда результат равен undefined. Я много пробовал, но не получилось.

Логическое состояние в конструкторе определяется следующим образом:

class UserInfo extends Component{
constructor(props){
    super(props);
    this.state = {
    token : '',
    isVisible : true,
   };
}

Эта функция должна проверять, содержит ли token значение или undefined, а затем продолжать соответствующим образом выполнять правильное условие. Однако, когда token равно undefined, isVisible не переключается в ложное значение, и оно остается верным, несмотря ни на что.

Любые предложения, которые я буду очень признателен.

 ToggleFunction = (token) => {
    if (this.state.token === undefined){
      this.setState({
        isVisible: !this.state.isVisible,
        });   
  }
  else {
    this.setState(state => ({

      isVisible: state.isVisible


    }));
  }
};

1 Ответ

0 голосов
/ 16 марта 2020

В вашей функции ToggleFunction вы проверяете this.state.token === undefined, а не token === undefined из параметра вызова метода.

Try:

ToggleFunction = (token) => {
    if (token === undefined){
      this.setState({
        isVisible: !this.state.isVisible,
        });   
  }
  else {
    this.setState(state => ({
      isVisible: state.isVisible
    }));
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...