- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个多项选择应用程序来计算正确和错误答案的数量。
一切都呈现良好,但应用程序无法正常工作:
我好像在onClick()
方法中犯了一个错误,请帮忙解决这个问题。
提前谢谢您。
const questions = [
{
question: 'What is 8 X 2?',
options: [5, 16, 12, 18],
answer: 16
},
{
question: 'What is 18 / 3?',
options: [6, 10, 7, 5],
answer: 6
},
{
question: 'What is 3 X 2?',
options: [5, 16, 6, 10],
answer: 6
},
{
question: 'What is 5 X 0?',
options: [0, 5, 10, 6],
answer: 0
},
{
question: 'What is 11 X 11?',
options: [121, 144, 112, 120],
answer: 121
},
{
question: 'What is 12 X 6?',
options: [68, 82, 72, 56],
answer: 72
},
{
question: 'What is 89 X 2?',
options: [186, 192, 178, 155],
answer: 178
},
{
question: 'What is 56 / 2?',
options: [18, 32, 26, 28],
answer: 28
},
{
question: 'What is 8 X 3?',
options: [32, 18, 24, 21],
answer: 24
},
{
question: 'What is 9 X 8?',
options: [81, 72, 64, 68],
answer: 72
}
]
function Question(props){
return (
<div>
<h2 className='question'>{props.question}</h2>
</div>
);
}
function Option(props){
return (
<div>
<button className = 'option' type = 'button' onlick = {() => {props.onClick()} }>{props.option}</button>
</div>
)
}
function Options(props){
const options = props.options.map ((option) => <Option key = {option} option = {option} onClick = {() => {props.onClick(option)}} />);
return (
<div>
{options}
</div>
)
}
function AnswerResult(props){
return (
<div className = 'result'>
<div className = 'countAnswers'>
<span>Correct: {props.correctAnswers}</span>
</div>
<br/>
<div className = 'countAnswers'>
<span>Incorrect: {props.incorrectAnswers}</span>
</div>
</div>
)
}
class TriviaApp extends React.Component{
constructor(props){
super(props)
this.state = {
questions: questions,
correctAnswers: 0,
incorrectAnswers: 0,
questionNumber: 0
};
this.handleClick = this.handleClick.bind(this);
}
isGameFinished(){
return !this.state.questions[this.state.questionNumber];
}
handleClick(selectedOption){
const questionInfo = this.state.questions[this.state.questionNumber];
if (!this.isGameFinished()) {
let sumCorrect = 0;
let sumIncorrect = 0;
if (selectedOption === questionInfo.answer) {
sumCorrect++;
} else {
sumIncorrect++;
}
this.setState((prevState, props) => {
return {
questionNumber: prevState.questionNumber + 1,
correctAnswers: prevState.correctAnswers + sumCorrect,
incorrectAnswers: prevState.incorrectAnswers + sumIncorrect
}
});
}
}
render(){
let questionInfo;
const gameIsActive = !this.isGameFinished();
if (gameIsActive) {
questionInfo = this.state.questions[this.state.questionNumber];
} else {
questionInfo = this.state.questions[this.state.questions.length - 1];
}
return (
<div>
<div className = 'game'>
<Question question = {questionInfo.question} />
<Options options = {questionInfo.options} onClick = {this.handleClick} />
</div>
<AnswerResult correctAnswers = {this.state.correctAnswers} incorrectAnswers = {this.state.incorrectAnswers} />
{!gameIsActive && <div><span>Game is finished!</span></div>}
</div>
);
}
}
ReactDOM.render(
<TriviaApp />,
document.getElementById('root')
)
这是我的 CodePen 代码的链接: CodePen
最佳答案
这只是onclick
中的一个拼写错误,应该是camelcase onClick
:
<button className = 'option' type = 'button' onClick = {() => {props.onClick()} }>{props.option}</button>
关于javascript - 'onClick( )' method isn' t 工作正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53911348/
我已经盯着它看了好几个小时了,想不出解决办法;我通常使用正则表达式处理这种类型的验证,但我正在尝试使用内置解决方案进行更改(显然,我不经常这样做): private static double pro
有什么区别 grep -isn "String\.format" -R . 和 grep -isn String\.format -R . 当我使用后者时,结果包括String format和Stri
我有一部固件为 4.3 的 iPhone 3GS。我下载了 3.1.3 固件,并希望使用 Organizer 恢复 iPhone。但!我收到以下错误: “此设备不符合所请求的版本。” 知道出了什么问题
我创建了一个小界面: import ... abstract class IController { void navigateTo(BuildContext context, String ro
基础this Question我使用扩展方法在 dart 中创建了一个枚举: enum TagVisibility { public, shared, private, } extensi
我在 Play 商店中放置了一个应用程序,我的 friend 正在运行 4.1(Nexus 7),在尝试安装我的应用程序时收到以下消息:“您的设备与此版本不兼容”。这是为什么来的?请任何人帮助我。 M
我在 Play 商店中放置了一个应用程序,我的 friend 在两台设备上运行 4.0.3,在尝试安装我的应用程序时收到以下消息:“您的设备与此版本不兼容”。 一台设备允许安装,另一台不允许。我允许
#!/usr/bin/env perl use warnings; use 5.12.2; my $c = 'f'; # could be a number too if ( $c eq 'd' ||
我正在编写一个Cocoa应用程序,我想实现一个全局热键功能。我实现了 Waffle Software 的 ShortcutRecorder.framework,并向我的 xib 添加了一个 custo
当我在开发该应用程序时,我点击了“运行”,一旦应用程序启动,它就会在打开启动屏幕之前卡住,并向我显示“应用程序没有响应,您想关闭它吗” 对话。!! !我什至没有打开闪屏类。!我在 OnCreate 中
大约 12 小时前,我尝试使用“beautiful jekyll”创建个人博客。 '。我遵循最简单的三步方法来运行一个基本的博客,但是,每次我输入我的网站链接时,我都会得到 There isn't a
我正在解析制表符分隔的文件。有几列没有被识别为数字,即使它们显然是数字。当我尝试总结这些值时,会显示错误:Argument ""97""isn't numeric in addition (+) 并且
我有两个模型:posts 和 likings 它们具有一对多关系(因此,一个帖子有很多喜欢)。 Likings 模型还有一个 isActive 字段,它显示喜欢是主动的还是被动的。 我想获得(排序)获
我的 android 模拟器(没有 play store 的 api 30)不时显示这个错误对话框: 我点击“关闭应用程序”,屏幕瞬间变黑,然后一切恢复正常。 发生这种情况时,我会在 Logcat 中
我正在尝试使用 Electron 构建 Windows 和 Mac OS 应用程序,但遇到了障碍。 简而言之,如果我尝试在 Mac OS Big Sur 上直接使用 Electron 运行应用程序(而
use List::MoreUtils 'uniq'; print join ", ", sort uniq ("b", "a", "a"); 结果参数“a”在排序中不是数字... print joi
background: ShaderMask( shaderCallback: (rect) { return LinearGradient( begin: Ali
我正在尝试创建一个多项选择应用程序来计算正确和错误答案的数量。 一切都呈现良好,但应用程序无法正常工作: 用户的选择并不能定义为正确或错误的答案。 问题不会更改为下一个问题。 我好像在onClick(
我正在开发一个需要帐户链接的 Google 助理应用程序,我已经到了这样的步骤:如果我说“与 [我的应用程序名称] 交谈”,我会取回一张卡片带有文本“Link [my app name] to Goo
编译时出现以下错误: MenuNavigationApp.c:58: error: array type has incomplete element typeMenuNavigationApp.c:
我是一名优秀的程序员,十分优秀!