首页 > 解决方案 > 如何有条件地比较 React 中的状态和值?

问题描述

我是新手,如何比较状态和值?这些值通过 componentDidMount() 分配给状态 managerStatus、directorStatus 和 partnerStatus。当我使用 console.log 时,也会检索值,但是当我使用 IF 条件时,它不会进行更改。

    console.log(managerStatus);            
    console.log(directorStatus);            
    console.log(partnerStatus); 

    if (managerStatus === "Rejected") {
        this.state.managerStatus = "Pending"
   } else if(directorStatus  === "Rejected")
            this.state.directorStatus = "Pending"
              else if( partnerStatus  === "Rejected")
                this.state.partnerStatus = "Pending"

代码应该如何更正?

标签: reactjsreact-hooks

解决方案


    render() {
        const managerStatus = this.state.managerStatus;
        const directorStatus = this.state.directorStatus;
        const partnerStatus = this.state.partnerStatus; 
        if (managerStatus == "Rejected") {
            this.state.managerStatus = "Pending"
       } else if(directorStatus  == "Rejected")
                this.state.directorStatus= "Pending"
                  else if( partnerStatus  == "Rejected")
                    this.state.partnerStatus = "Pending"
}

在 render() 函数中使用上述方法帮助我解决了问题。在 render() 上方的构造函数中声明的状态可以通过 using 访问this.state.nameofstate。我在 render() 中访问它们,然后将它们分配给变量。使用我与字符串值比较的那些变量,如果条件为真。使用this.state.statename状态可以改变。


推荐阅读