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

[react-contexts] EventTrackingProvider trackScreen의 파라미터 의존성 이슈 #1569

Open
dddeok opened this issue Sep 13, 2021 · 0 comments
Labels
bug Something isn't working

Comments

@dddeok
Copy link
Contributor

dddeok commented Sep 13, 2021

설명

호텔 이벤트 로깅 파라미터에 대한 이슈를 수정하던중 발견하게 된 이슈 입나다.

  useEffect(() => {
    if (page?.path) {
      const utmParams = Object.keys(query || {})
        .filter((key) => key.match(/^utm_/i))
        .reduce(
          (params, key) => ({
            ...params,
            [key.replace(/^utm_/, '')]: query[key],
          }),
          {},
        )

      trackScreen(page?.path, pageLabel, utmParams)
    }
  }, [trackScreen, page?.path, pageLabel, query])

해당 코드를 보면 query의 변화에 따른 의존성을 가짐에 따라 해당 trackScreen을 실행하게 됩니다.
하지만 query 가 존재하지 않더라도 해당 페이지 내에서 렌더링이 다시 일어날 경우 얕은 비교정책에 의해서 query 또한 변경된걸로 판단하고 해당 trackScreen이 다시발생하게 됩니다.

예시) /hotels, /hotels/#hash.search.popup 과 같은 케이스의 경우에서 발생하였음.

@giwan-dev giwan-dev added the bug Something isn't working label Sep 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants