TypeScriptで見積もり作成システムを作っています。
import
1import "./styles.css"; 2 3type priceType = { 4 koumoku:string; 5 tanka: number; 6 suuryou: number; 7 tani: string; 8 goukei: number; 9} 10 11export default function App() { 12 const [koumokuText, setKoumokuText] = useState(""); 13 const [tankaText, setTankaText] = useState<number>(); 14 const [suuryouText, setSuuryouText] = useState(""); 15 const [taniText, setTaniText] = useState(""); 16 const [price, setPrice] = useState<Array<priceType>>([ 17 { 18 koumoku: "企画費", 19 tanka: 1000 , 20 suuryou: 3 , 21 tani: "ページ", 22 goukei: 0 23 } 24 ]); 25 26 const onChangeKoumokuText = (event:React.ChangeEvent<HTMLInputElement>) => setKoumokuText(event.target.value); 27 const onChangeTankaText = (event:React.ChangeEvent<HTMLInputElement>) => setTankaText(event.target.value); 28 const onChangeSuuryouText = (event:React.ChangeEvent<HTMLInputElement>) => setSuuryouText(event.target.value); 29 const onChangeTaniText = (event:React.ChangeEvent<HTMLInputElement>) => setTaniText(event.target.value); 30 console.log("単価" + tankaText); 31 console.log("数量" + suuryouText); 32 33 const onClickAdd = () => { 34 const newPriceObject:priceType = { 35 koumoku: koumokuText, 36 tanka: tankaText, 37 suuryou: suuryouText, 38 tani: taniText, 39 goukei: tankaText * suuryouText 40 }; 41 42 const newPrice = [...price, newPriceObject]; 43 setPrice(newPrice); 44 console.log(price); 45 46 //inputのリセット 47 setKoumokuText(""); 48 setTankaText(); 49 setSuuryouText(); 50 setTaniText(""); 51 }; 52 53 const total = price.reduce((p, x) => p + x.goukei, 0); 54 console.log(total); 55 56 return ( 57 <> 58 <div className="input_erea"> 59 <input 60 placeholder="項目" 61 value={koumokuText} 62 onChange={onChangeKoumokuText} 63 /> 64 <input 65 type="number" 66 placeholder="単価" 67 value={tankaText} 68 onChange={onChangeTankaText} 69 /> 70 <input 71 type="number" 72 placeholder="数量" 73 value={suuryouText} 74 onChange={onChangeSuuryouText} 75 /> 76 <input 77 placeholder="単位" 78 value={taniText} 79 onChange={onChangeTaniText} 80 /> 81 <button onClick={onClickAdd}>追加</button> 82 </div> 83 84 {price.map((s, index) => { 85 return ( 86 <div key={index} className="mitumori_table"> 87 <p>{s.koumoku}</p> 88 <p>{s.tanka}</p> 89 <p>{s.suuryou}</p> 90 <p>{s.tani}</p> 91 <p>{s.goukei}円</p> 92 </div> 93 ); 94 })} 95 <div className="ddd">{total}</div> 96 </> 97 ); 98}
const onChangeTankaText = (event:React.ChangeEvent<HTMLInputElement>) => setTankaText(event.target.value);
の「event.target.value」
部分にタイプスクリプトのエラー
Argument of type 'string' is not assignable to parameter of type 'SetStateAction<number | undefined>
がでてしまうのですが、解決方法がわかりません。
stringだとエラーがでず、numberだとエラーになるようです
どなたか解決方法がわかりましたら
お教えいただけないでしょうか。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/27 05:09