как обновить состояние без вызова обработчика событий - PullRequest
0 голосов
/ 29 мая 2020

Я создал метод operatorHandler в react. js. Он обновляет состояние с помощью свойства setState.

 ```
    operatorHandler=()=>{
    const index1 = units.indexOf(this.state.opt1);
    const index2 = units.indexOf(this.state.opt2);
    if(index1>index2){
        this.setState({operator:'/'});
    }else if(index1<index2){
        this.setState({operator: '*'})
    }
}```

Я создал метод calculateHandler и вызвал operatorHandler с помощью this.method.

    ```   calculateHandler = ()=>{
   this.operatorHandler()
    let result;
    if(this.state.operator ==='*'){
        result = parseInt(this.state.input,10) * (multiplyingFactor[this.state.opt2])/(multiplyingFactor[this.state.opt1]);
        return this.setState({result: result});
    }else if(this.state.operator ==='/'){
        result = parseInt(this.state.input,10) / (multiplyingFactor[this.state.opt1]/multiplyingFactor[this.state.opt2]);
        return this.setState({result: result});
    }
}```

Есть компонент кнопки, который получает свойства в качестве метода calculateHandler ().

<Button clicked = {()=>{this.calculateHandler()}}>Calculate</Button>

Чтобы обновить состояние, мне нужно дважды нажать кнопку. Состояние не обновляется с первой попытки;

...