現在、Reactで割り勘アプリを作成しており、合計金額を人数で割ったらその人数分liタグを生成し、表示するコードを書いています。
例えば、totalに12000を入力し、pplに3を入力して3人で割ったとします。
すると、計算結果として4000のliタグを3つ生成して表示したいです。
pplに4を入力した場合だと3000のliタグを4つ生成して表示したいです。
ですが、以下のコードで検証してみると、計算するボタンをクリックしても配列personに計算結果perPersonがpushされないです。
一体、なにが原因でpushされないのでしょうか?
解説と共に正常に動くコードを教えていただけますと、幸いです。
何卒、よろしくお願いします。
import { useState } from "react"; import "./App.css"; function App() { const [total, setTotal] = useState(""); //合計金額 const [ppl, setPpl] = useState(""); //人数 //合計金額入力欄 const getValueFromTotal = (e) => { setTotal(() => e.target.value); }; //人数入力欄 const getValueFromPpl = (e) => { setPpl(() => e.target.value); }; //計算をするボタン押した際に一人当たりの計算 let person = []; const cal = () => { let perPerson = total / ppl; for (let i = 0; i < ppl; i++) { person.push(perPerson); } }; console.log(person); return ( <div className="App"> <input type="number" className="total" onChange={getValueFromTotal} /> <input type="number" className="ppl" onChange={getValueFromPpl} /> <button type="button" onClick={cal}> 計算する </button> {person && person.map((p, index) => { return <li key={index}>{p}</li>; })} </div> ); } export default App;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/09 21:27
2022/01/10 02:35
2022/01/10 09:37