Как использовать значения состояния сразу после вызова функции, которая устанавливает эти значения в состояние? - PullRequest
0 голосов
/ 04 июня 2019

У меня есть функция, которая устанавливает некоторые значения состояния в зависимости от условий. Мне нужно вызвать эту функцию, и сразу после этого мне нужно проверить эти состояния.

class PaymentCard extends Component{
  constructor(props) {
    super(props);
    this.state = {
      amount: '0.00',
      description: '',
      amountError: null,
      descriptionError: null,
    };
  }

  handleDescriptionOnBlur = () => {
    const value = this.state.description;
    if ((!value || value === '' || value.length <= 0 )){
      this.setState({descriptionError: 'REQUIRED'});
    }
    else {
      this.setState({ descriptionError: null});
    }
  }

  handleAmountOnBlur = () => {
    let value = this.state.amount;
    if (value === '0.00'){
      this.setState({ amountError: 'REQUIRED' });
    }
    else {
      this.setState({amountError: null});
    }
  }

  runValidations = () => {
    this.handleDescriptionOnBlur();
    this.handleAmountOnBlur();
    const { amount, description, amountError, descriptionError } = this.state;
    if (!amountError && !descriptionError) {
      this.props.getDetailCardValues({ amount, description });
    }
  }

  render(){

  }
}

внутри функции runValidations, условие, if (! amountError &&! descriptionError), это условие не имеет обновленных значений из состояния.

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете сделать это с помощью методов жизненного цикла реагирования (componentDidMount и ComponentDidUpdate), чтобы посмотреть дополнительную информацию по документам реагирования https://reactjs.org/docs/react-component.html

...