我只希望在单击生成笑话(单击此处获取笑声)按钮后显示数据,但是一旦页面加载就会检索它。我该如何阻止这个?
`import React, { useState, useEffect } from "react";
function App() {
const [joke, getJoke] = useState(" ")
const newJoke = () => {
fetch("http://api.icndb.com/jokes/random")
.then(result => result.json())
.then(result2 => {
console.log(result2)
getJoke(result2.value.joke)
})
}
useEffect(() => {
newJoke()
}, [])
return (
<div className="jokeSection">
<h1>Chuck norris jokes</h1>
<h3>{joke}</h3>
<button onClick={() => newJoke()}>Click here for a chuckle</button>
</div>
)
}
export default App;`
这是一种很好的编码方式吗?我应该使用不同的函数,例如 componentDidMount 吗?