質問編集履歴

1

コードを分かりやすく編集しました

2018/09/16 20:57

投稿

yamady
yamady

スコア176

test CHANGED
@@ -1 +1 @@
1
- Knobのつまみが増えるアニメーションを付与したい(react)
1
+ stateを変更す際にアニメーションを加えたい(react)
test CHANGED
@@ -1,12 +1,14 @@
1
- いつもお世話なっております。
1
+ 閲覧頂きまして、誠がとうございます。
2
2
 
3
3
 
4
4
 
5
+ 現在、react-canvas-knobというライブラリをつかって、押したら量が増えるつまみのUIを実装しています。
6
+
5
- React Knobを使って、「プラス」、「マイナス」を押すことでクリックすると水量が増減する仕組みをつと考えています。プラスを押した時に、`state`を増加させるのですが、数値が変るだけとなってまってつまみが増えていくところにアニメーションをつけたいと考えているのでが、うまくいきません
7
+ 押すたびに量が増えていとい仕様になっているのですが、ただ数値とつまみ部分が変化するだけではさみしいので、アニメーションを追加したいと考えていす。
6
8
 
7
9
 
8
10
 
9
- react-knob: [https://github.com/joshjg/react-canvas-knob](https://github.com/joshjg/react-canvas-knob)
11
+ ちょっとずつ増えていくようなアニメーションを追加するためには、cssアニメーションなどを使おうと試みてみたのですが、state内で増減をコントロールしているためアニメーションを入れられず困っています。
10
12
 
11
13
 
12
14
 
@@ -22,33 +24,29 @@
22
24
 
23
25
 
24
26
 
25
- constructor(props) {
27
+ class MyComponent extends React.Component {
26
28
 
27
- super(props);
28
-
29
- this.state = {
29
+ state = {value: 0};
30
-
31
- item: {
32
-
33
- amount: 0
34
-
35
- }
36
-
37
- }
38
-
39
- }
40
30
 
41
31
 
42
32
 
43
- _handleAdd = id => event => {
33
+ handleChange = (newValue) => {
44
34
 
45
- const item = this.state.item;
35
+ this.setState({value: newValue});
46
36
 
37
+ };
38
+
39
+
40
+
41
+ _handleAdd = event => {
42
+
43
+ const item = this.state.value;
44
+
47
- item.amount = item.amount + 5;
45
+ value = vakue + 10;
48
46
 
49
47
  this.setState({
50
48
 
51
- item
49
+ value
52
50
 
53
51
  });
54
52
 
@@ -56,66 +54,36 @@
56
54
 
57
55
 
58
56
 
59
- _handleChange = id => newValue => {
57
+ render() {
60
58
 
61
- this.setState({
59
+ return (
62
60
 
63
- item: {
61
+     <div>
64
62
 
65
- amount: newValue
63
+ <Knob
66
64
 
67
- }
65
+ value={this.state.value}
68
66
 
69
- });
67
+ onChange={this.handleChange}
70
68
 
69
+ />
70
+
71
+ <div onClick={this.handleAdd}>+</div>
72
+
73
+    </div>
74
+
71
- };
75
+ );
76
+
77
+ }
78
+
79
+ }
72
80
 
73
81
 
74
82
 
75
- const KnobItem = ({ item, handleAdd }) => (
76
-
77
- <div>
78
-
79
- <Knob
80
-
81
- step={3}
82
-
83
- angleArc={250}
84
-
85
- angleOffset={-125}
86
-
87
- onChange={handleChange(item.id)}
88
-
89
- />
90
-
91
- </div>
92
-
93
- <div className="knob-label">
94
-
95
- <ul>
96
-
97
- <li>
98
-
99
- <a onClick={handleAdd(item.id)}>+</a>
100
-
101
- </li>
102
-
103
- </ul>
104
-
105
- </div>
106
-
107
- );
108
-
109
-
110
-
111
- export default KnobItem
83
+ export default MyComponent
112
84
 
113
85
  ```
114
86
 
115
87
 
116
88
 
117
- こうした`state`で管理している場合に切り替えアニメーションを付与するためには、Reactの場合どのような処理の仕方が的確なのでしょうか?
118
-
119
-
120
-
121
- 初心者な質問で恐縮ではございが、ご助言いただければ幸いございます。
89
+ すみせんが、なにか分かる方は教示いただけませんしょうか?