是否可以通过切换指令以以下方式设置状态?也许这些方式都不是一个好的解决方案

我可以设定:

return this.setState({
         stat1: 'a'
       })


要么

return this.state.stat1 = 'a'

第一种方式

    books = (price) => {
      switch(price) {
        case 100:
          return this.setState({
            stat1: 'a'
          })
        case 1000:
          return this.setState({
            stat1: 'b'
          })
        case 2000:
          return this.setState({
            stat1: 'c'
          })
        default:
          return this.setState({
            stat1: ''
          })
      }
    }


第二种方式

    books = (price) => {
      switch(price) {
        case 100:
          return this.state.stat1 = 'a'
        case 1000:
          return this.state.stat1 = 'b'
        case 2000:
          return this.state.stat1 = 'c'
        default:
          return this.state.stat1 = ''
      }
    }

最佳答案

好吧,您可以使用第一种方法,但是这也可以做到:

const books = price => {
this.setState({
  stat1: price===100?"a"
        :price===1000?"b"
        :price===2000?"c"
        :null
   })
 }


第二种方法是错误的请检查此以作解释Why we can't change states in react without calling setState()

10-04 21:24