【发布时间】:2020-04-15 01:05:56
【问题描述】:
由于我目前正在学习 React,我正在创建一个笑话生成器。我创建了一个本地文件,并且能够提取数据(笑话)并将其显示在浏览器上。现在,我正在尝试创建一个按钮,当您单击该按钮时,它会显示一个随机笑话。我可以看到笑话和按钮,但没有触发任何操作。我检查了控制台,没有错误。如果我使用onClick = {randomJoke},那么我会收到一个错误消息,指出侦听器期待的是一个函数,而不是一个对象。有人可以帮我指出问题所在吗?
这是我目前的设置方式:
import React from 'react'
import SportsJokesData from './SportsJokesData';
class SportsJokesApi extends React.Component {
constructor(props){
super(props);
this.getRandomJoke = this.getRandomJoke.bind(this);
}
getRandomJoke(){
return SportsJokesData[(SportsJokesData.length * Math.random()) << 0]
}
render() {
const randomJoke = this.getRandomJoke()
return (
<React.Fragment>
<p> {randomJoke.question}</p>
<p>{randomJoke.answer}</p>
<button onClick={this.getRandomJoke}>
click here
</button>
</React.Fragment>
)
}
}
export default SportsJokesApi;
这是在添加按钮之前文件最初编写脚本的方式。
import React from 'react'
import SportsJokesData from './SportsJokesData';
class SportsJokesApi extends React.Component {
getRandomJoke(){
return SportsJokesData[(SportsJokesData.length * Math.random()) << 0]
}
render() {
const randomJoke = this.getRandomJoke()
return (
<React.Fragment>
<p>{randomJoke.question}</p>
<h1>{randomJoke.answer}</h1>
</React.Fragment>
)
}
}
export default SportsJokesApi;
【问题讨论】:
标签: javascript reactjs