ジョークの生成ボタンがクリックされたときにのみデータが表示されるようにしたいのですが、ページが読み込まれるとデータが取得されます。どうすればこれを止めることができますか?
`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 などの別の関数を使用する必要がありますか?