回答編集履歴
2
追記を見やすくするため修正
test
CHANGED
@@ -11,6 +11,8 @@
|
|
11
11
|
console.log(newValue)
|
12
12
|
})
|
13
13
|
```
|
14
|
+
|
15
|
+
### 2023/02/27 追記
|
14
16
|
|
15
17
|
以下の回答コメントに対する回答
|
16
18
|
> newValueに型をつけることは一般的ではない?対応してない?のでしょうか?
|
1
回答コメントに対してソースコードを記載するため追記
test
CHANGED
@@ -11,3 +11,24 @@
|
|
11
11
|
console.log(newValue)
|
12
12
|
})
|
13
13
|
```
|
14
|
+
|
15
|
+
以下の回答コメントに対する回答
|
16
|
+
> newValueに型をつけることは一般的ではない?対応してない?のでしょうか?
|
17
|
+
|
18
|
+
個人的には不要と思っています。
|
19
|
+
|
20
|
+
newValueがとりうる値は、Recoilの仕様上`string | DefaultValue`となりますが、
|
21
|
+
`DefaultValue`は要は`string`になります。(atomのdefaultで指定するようなものです
|
22
|
+
|
23
|
+
ということは、以下のように型を明示してあげることで、わざわざselectorのset内で型を指定する必要がなくなると思います。
|
24
|
+
※ tsで書きます
|
25
|
+
|
26
|
+
``` ts
|
27
|
+
const testSelector = selector<string>({
|
28
|
+
key: 'testSelector',
|
29
|
+
get: ({get}) => {
|
30
|
+
return 'string'
|
31
|
+
},
|
32
|
+
set: ({set}, newValue) => console.log(newValue) // selectorの関数自体にstringの型制約をつけたのでここで明示する必要がなくなる
|
33
|
+
})
|
34
|
+
```
|