TypeError:如果“false”没有按预期工作

我正在使用 React.js 做一个 PWA 测验应用程序,我遇到了以下问题:


我可以获得只有一个答案的问题对象,有些则有多个。


在只有一种可能答案的情况下,我想强制用户只有一种可能性。


为此,我制定了以下算法:


  clickOnChoice = (key) => {

    if (this.state && this.state.correctAnswers) {

      let newChoices = INITIAL_CHOICES; // {}

      if (this.state.multiChoice) {

        console.log("this.state.multiChoice:", this.state.multiChoice); // this.state.multiChoice: false ???

        newChoices = JSON.parse(JSON.stringify(this.state.choices)); // {answer_b: 1}

      }

      newChoices[key] = 1 - (newChoices[key] | 0); // {answer_b: 1, answer_a: 1}

      this.setState({

        choices: newChoices

      }, this.updateNextButtonState);

    }

  }

然而,执行似乎忽略了条件if (this.state.multiChoice)。


我错过了什么?

https://i.stack.imgur.com/mRrJG.gif

也许我需要一杯咖啡...☕

无论如何,先谢谢了!


大话西游666
浏览 98回答 1
1回答

皈依舞

您很可能正在尝试检查字符串“false”而不是实际的布尔值。您可以检查该字符串是否为预期的布尔值if (this.state.multiChoice === 'true')或将 state 属性的值更改为 true || 错误的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript