javascript - 使用react中的switch指令设置状态

标签 javascript reactjs

是否可以通过下面给出的方式使用 switch 指令设置状态?或者也许这些方法都不是一个好的解决方案

我可以设置:

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

返回 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()

关于javascript - 使用react中的switch指令设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56802646/

相关文章:

javascript - Angular 表达式不适用于 html

ios - SpeechSynthesis 无法在 iOS 设备上设置语音

javascript - CORS 策略和 customerchat net::ERR_FAILED 上的 FB 聊天插件错误

javascript - 在 React 中使用 Array.Map() 返回子数组

javascript - 在 React 中强制重新加载 gif

javascript - 如果两个关联数组有一个字段值相同,则从它们中获取字段值

javascript - Zurb 基金会揭示禁用动画

javascript - 从 NodeJs 脚本返回退出代码的 Bash 脚本

reactjs - React Cognito 用户池 - 客户端尝试写入未经授权的属性

javascript - 在 AngularJS 中将变量从 HTML 传递到 Javascript 时,与整个对象相比,性能有何改进