【发布时间】:2018-07-06 00:40:12
【问题描述】:
我有一个多项选择琐事游戏,我将布尔值 true 或 false 传递给自定义数据属性 .. 各种答案组件中的“正确”。
当点击答案时,我正在运行检查以查看正确属性的值是真还是假。
这是答案之一
<Answer
onClick={this.answerClick}
onMouseEnter={this.hoverEnter}
onMouseLeave={this.hoverLeave}
correct={this.state.correctAnswer.a1}>
{this.state.answerSet.a1}
</Answer>
这是答案组件本身
const answer = (props) => (
<div
className={classes.Answer}
onMouseEnter={props.onMouseEnter}
onMouseLeave={props.onMouseLeave}
onClick={props.onClick}
data-correct={props.correct}>
{props.children}
</div>
)
因此,在单击时,我会检查 data-correct 属性是否具有真值或假值。
answerClick(e) {
console.log(e.target.dataset.correct)
if(e.target.dataset.correct === true) {
this.setState({ score: this.state.score +1, level: this.state.level +1})
console.log('you have answered correctly')
} else {
this.setState({ level: this.state.level +1 })
console.log('you have answered incorrectly')
}
}
即使选择了正确答案,它也只会记录错误答案。我知道 data-correct 包含 true 的值,因为我的控制台日志是
console.log(e.target.dataset.correct)
是否发生了我不知道的 jsx/react 行为?当 data-correct 的值为 true 时,为什么这只会默认为 else ?任何帮助都会很棒。
【问题讨论】:
-
请确保整个sn-p都可以被测试,这样你才能得到一个完整准确的答案(合并3个sn-ps,这样一个完整的功能组件就存在了)
-
已注意,以后会确保这样做
标签: javascript reactjs