質問編集履歴

4

補足

2020/12/11 14:53

投稿

yochun02
yochun02

スコア76

test CHANGED
File without changes
test CHANGED
@@ -36,11 +36,13 @@
36
36
 
37
37
  const handleClick(key: keyof Obf) {
38
38
 
39
- // setStateはObjの状態を変更する関数
39
+ // setStateはObjの状態を変更する関数(以下だと全てstringで格納されてしまう)
40
40
 
41
- setState()
41
+ setState(test => {...test, [key]: e.target.value})
42
42
 
43
43
  }
44
+
45
+
44
46
 
45
47
 
46
48
 

3

補足

2020/12/11 14:53

投稿

yochun02
yochun02

スコア76

test CHANGED
File without changes
test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  <input
58
58
 
59
- value = test.str
59
+ value = test.num
60
60
 
61
61
  onclick = (e) => handleClick("num")
62
62
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  <input
66
66
 
67
- value = test.str
67
+ value = test.strNum
68
68
 
69
69
  onclick = (e) => handleClick("strNum")
70
70
 

2

補足説明

2020/12/11 14:50

投稿

yochun02
yochun02

スコア76

test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,51 @@
23
23
  ```
24
24
 
25
25
  このとき、オブジェクトのキーstrNumの型を調べる(アクセスする)方法はありますでしょうか?
26
+
27
+
28
+
29
+
30
+
31
+ ### やりたいこと
32
+
33
+ フォームの入力値がstringで返されてしまうので、オブジェクトのプロパティの型がnumberの場合はvalueAsNumber(数値に変換)を使ってオブジェクトに格納したい。
34
+
35
+ ```
36
+
37
+ const handleClick(key: keyof Obf) {
38
+
39
+ // setStateはObjの状態を変更する関数
40
+
41
+ setState()
42
+
43
+ }
44
+
45
+
46
+
47
+ // フォーム
48
+
49
+ <input
50
+
51
+ value = test.str
52
+
53
+ onclick = (e) => handleClick("str")
54
+
55
+ />
56
+
57
+ <input
58
+
59
+ value = test.str
60
+
61
+ onclick = (e) => handleClick("num")
62
+
63
+ />
64
+
65
+ <input
66
+
67
+ value = test.str
68
+
69
+ onclick = (e) => handleClick("strNum")
70
+
71
+ />
72
+
73
+ ```

1

補足

2020/12/11 14:46

投稿

yochun02
yochun02

スコア76

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- あるオブジェクトのキーの値が数値なのか文字列なのか判定したいのですが、下記型が分かりません。
1
+ あるオブジェクトのキーの値が数値なのか文字列なのか判定したいのですが、書き方が分かりません。
2
2
 
3
3
 
4
4