質問するログイン新規登録

質問編集履歴

4

setStateの値変更

2020/12/02 14:58

投稿

hello_space
hello_space

スコア24

title CHANGED
File without changes
body CHANGED
@@ -5,10 +5,10 @@
5
5
 
6
6
  イメージとしては以下です。
7
7
  ```javascript
8
- const [value, setValue] = useState("hoge");
8
+ const [value, setValue] = useState(0);
9
9
 
10
10
  const change = () => {
11
- setValue("fuga")
11
+ setValue(value + 1)
12
12
  }
13
13
 
14
14
  // これだと表示は変わるが、inputに直接書き込めない

3

書式の改善

2020/12/02 14:58

投稿

hello_space
hello_space

スコア24

title CHANGED
File without changes
body CHANGED
@@ -10,8 +10,12 @@
10
10
  const change = () => {
11
11
  setValue("fuga")
12
12
  }
13
+
14
+ // これだと表示は変わるが、inputに直接書き込めない
13
15
  return <TextField value={value} onChange={change}/>;
16
+
14
- // これだと表示変わinputに直接書き込めない
17
+ // これだとstateが変わっても表示変わらないがinputに書き込め
15
18
  return <TextField defaultValue={value} onChange={change}/>;
16
- // これだとstateが変わっても表示が変わらないがinputには書き込める
19
+
20
+
17
21
  ```

2

コード例の追加

2020/12/02 14:01

投稿

hello_space
hello_space

スコア24

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,17 @@
1
1
  reactのstateをmaterial-ui(TextField)のvalueに渡しTextFieldの値を変更し、かつ手打ちでも変更できるようにしたいのですがうまくいきません。
2
2
  TextField value={state名}とするとstateが変更された時に表示も変わるのですが、そうすると手打ちでTextFieldに入力することができません。
3
3
  TextField defaultValue={state名}とすると手打ちで変更できるのですが、今度はstateを変更しても表示が変わりません。
4
- これらの両方(stateを更新した時にvalueを書き換え、かつinput要素を自由に書き換えられるよう)を実現するにはどのようにしたらよろしいでしょうか?
4
+ これらの両方(stateを更新した時にvalueを書き換え、かつinput要素を自由に書き換えられるよう)を実現するにはどのようにしたらよろしいでしょうか?
5
+
6
+ イメージとしては以下です。
7
+ ```javascript
8
+ const [value, setValue] = useState("hoge");
9
+
10
+ const change = () => {
11
+ setValue("fuga")
12
+ }
13
+ return <TextField value={value} onChange={change}/>;
14
+ // これだと表示は変わるが、inputに直接書き込めない
15
+ return <TextField defaultValue={value} onChange={change}/>;
16
+ // これだとstateが変わっても表示が変わらないがinputには書き込める
17
+ ```

1

タグの追加

2020/12/02 14:00

投稿

hello_space
hello_space

スコア24

title CHANGED
File without changes
body CHANGED
File without changes