Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nextjs Hot Module Reload시 recoil duplicate key오류 #256

Open
manudeli opened this issue Nov 13, 2022 · 3 comments
Open

Nextjs Hot Module Reload시 recoil duplicate key오류 #256

manudeli opened this issue Nov 13, 2022 · 3 comments
Assignees
Labels

Comments

@manudeli
Copy link
Contributor

No description provided.

@manudeli manudeli self-assigned this Nov 13, 2022
@okinawaa
Copy link

이 문제 때문에 많이 찾아봤었는데
facebookexperimental/Recoil#733
여기서는
env file에 RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=false

이라는 statement를 추가해주는 방법을 추천하더라고요, 사실 저 방법은 문제 해결이 아닌 문제 회피라고 생각해서 찝찝했었는데
종현님께서 구현하신 방법이 더 우아한 해결법인것 같네요.

감사합니다!

@manudeli
Copy link
Contributor Author

manudeli commented Nov 17, 2022

아톰의 키가 중복될 수 없게 맵 형식으로 객체에 atom들을 한 파일에서 주입했다가 이 함수의 리턴을 리덕스의 useTypedSelector처럼 타입추론해서 사용하면 어떨까했는데 아이디어만 생각해보고 구현은 못했네요

export const atoms = createAtoms({
  key1: initialValue1,
  key2: initialValue2,
})

const { useAtomValue, useAtom... } = atoms.key1

이렇게 하면 번들사이즈가 커질 거 같긴 한데 리덕스시절 서버상태를 모두 사용했던거 보다는 훨씬 작을 거 같아서 중복키를 없앨 수 있는 점에서 트레이드오프로 가져 갈 만 하지않을까? 라고 생각해요

에러를 꺼놔서 찬혁님 덕분에 구조를 다시 생각해봐야 겠네요~

이 방법의 문제는 개발모드에서 키가 계속 변경되는 문제가 있어요 결국 프로덕션이랑 동작이 다른 거죠 우아하다고 말하긴 어려운 거 같고 문제가 생기길 기다리고 있다고 볼 수 있습니다 ㅎㅎ

@manudeli manudeli reopened this Nov 17, 2022
@okinawaa
Copy link

okinawaa commented Nov 17, 2022

아.. 키가 계속 바뀌게 되는군요 맞네요 ㅠ..
저도 한번 고민해봐야겠네요..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants