Frontend/Recoil

[Recoil] SelectorFamily 쉽게 사용하기

Dogvelop 2023. 9. 22. 16:08

Recoil 에서 사용하는 selector의 경우
https://recoiljs.org/docs/introduction/getting-started/#selector


https://recoiljs.org/docs/basic-tutorial/selectors

 

Getting Started | Recoil

Create React App

recoiljs.org

공식문서에도 사용방법에 대해서 간단한 예제를 통해 잘 설명되어있다.

 

selectorFamily 의 경우 같은 형태의 selector들을 여러 곳에서 다른 paramater를 가진채로 사용하고 싶을 때 적용한다.

 

아래는 그 예시이다.

// 예시로 params로 들어온 값에 1을 더하는 selectorFamily를 작성한다.
const TestSelectorFamily = selectorFamily<testValue의 type, parameter의 type>({
  key: "해당 selector family의 key",
  get:
    (params : paramter의 type) =>
    ({ get }) => {
       // params는 number라고 가정한다.
       const testValue = 1 + params
       
       return testValue;
    },
});

 

이렇게 만든 selectorFamily는 같은 RecoilRoot로 감싸진 어느 곳에서든 사용이 가능하다.

 

const addOneToHundred = useRecoilValue(TestSelectorFamily(100))
const addOneToTen = useRecoilValue(TestSelectorFamily(10))

// 101
console.log(addOneToHundred);

// 11
console.log(addOneToTen);