今回はボタンの数を増やしてそれぞれの機能を実装したい場合どのようにかけば良いかを勉強したいと思います。
JSX,REACT,REACT DOMが既に入っているこちらのIDEを使って一緒に進めていくとやりやすいです。
https://jscomplete.com/playground
function Button(props) {
const handleClick = () => props.onClickFunction(props.increment);
return (
<button onClick={handleClick}>
+{props.increment}
</button>
);
}
function Display(props) {
return (
<div>{props.message}</div>
);
}
function App() {
const [counter, setCounter] = useState(0);
const incrementCounter = (incrementValue) => setCounter(counter+incrementValue);
return (
<div>
<Button onClickFunction={incrementCounter} increment={1} />
<Button onClickFunction={incrementCounter} increment={5} />
<Button onClickFunction={incrementCounter} increment={10} />
<Button onClickFunction={incrementCounter} increment={100} />
<Display message={counter}/>
</div>
);
}
ReactDOM.render(
<App />,
document.getElementById('mountNode'),
);
前回のコードを編集して、それぞれの数が 1, 5, 10, 100,ずつ増えるボタンを追加していきたいと思います。
前回のコードに続いてButton要素にincrementという新しい属性を追加していきます。
ここで渡す必要のある値はNumber型となるのでincrement="1"のようにしてしまうと文字列としての数字が渡されるため{}で囲うようにしましょう。
<Button onClickFunction={incrementCounter} increment={1} />
<Button onClickFunction={incrementCounter} increment={5} />
<Button onClickFunction={incrementCounter} increment={10} />
<Button onClickFunction={incrementCounter} increment={100} />
<button onClick={handleClick}>
+{props.increment}
</button>
const incrementCounter = (incrementValue) => setCounter(counter+incrementValue);
const handleClick = () => props.onClickFunction(props.increment);
今回はボタンの数を増やしてそれぞれ独立した値を持つにはどのようにすれば良いかを勉強しました。 ぜひIDEを使って試しに書いてみてください。