๐ŸŒท React ๋„ค์•„๋กœ:๋„ค์ด๋ฒ„๋กœ๊ทธ์ธ ์ ์šฉ

๋ฌธ์„ยท2020๋…„ 6์›” 21์ผ
2
post-thumbnail

๋„ค์ด๋ฒ„์•„์ด๋””๋กœ ๋กœ๊ทธ์ธ with React

๐Ÿงช Issue

๋งŒ๋“ค๋˜ ์›น ์„œ๋น„์Šค์— ์นด์นด์˜ค, ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ์€ npm ๋ชจ๋“ˆ๋กœ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ ๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ ๋ชจ๋“ˆ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๋‹ค(cannot find first child...). ๊ทธ๋ž˜์„œ ๋ชจ๋“ˆ์— ๋กœ๊ทธ๋ฅผ ์ง์ ‘ ์ฐ์–ด๋ณด๋‹ค๋ณด๋‹ˆ..

index.ex.js // line 48

var initLoginButton = function (props) {
     if ((!'browser' in process)) {
        return;
    }

line 107

 LoginNaver.prototype.componentDidMount = function () {
        if ((!'browser' in process)) {
            return;
        }
if ((!'browser' in process)) ์—์„œ ์žกํ˜€ ๋ฐ”๋กœ return๋˜์–ด ์ œ๋Œ€๋กœ ์‹คํ–‰์ด ๋˜์ง€ ์•Š์•˜๋‹ค. ๋‚ด ์›น ์„œ๋น„์Šค์˜ process๋ฅผ ์ฐ์–ด๋ณด๋‹ˆ
{title: "browser", env: {โ€ฆ}, argv: Array(0), version: "", nextTick: ฦ’, โ€ฆ}
๊ฐ€ ๋‚˜์˜ค๊ณ  ์™œ์ธ์ง€ process์— browser๋ž€ key๊ฐ€ ์—†๋‹ค. ์ผ๋‹จ ์ € ๋ธŒ๋ผ์šฐ์ €๋‹จ์—์„œ ์ถœ๋ ฅ๋˜๋Š” process๊ฐ€ ๋ญ”์ง€ ์ž˜ ๋ชฐ๋ผ(์•„์‹œ๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ ค์šฉ//// ์ถ”๊ฐ€: ๋‚ด ์›น์˜ ๋กœ๊ทธ์ธ Component๊ฐ€ ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ rendering ๋˜์–ด์„œ browser๊ฐ€ ์•ˆ๋‚˜์˜ค๋Š” ๊ฒƒ์œผ๋กœ ์ถ”์ธก ์ค‘..) ๋‹จ์ˆœํžˆ not ์—ฐ์‚ฐ์ž(!) ๋งŒ ๋‘ ๊ตฐ๋ฐ ๋ชจ๋‘ ์ œ๊ฑฐํ•ด์ฃผ๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™๋˜์—ˆ๋‹ค.
์ถ”๊ฐ€ : not(!) ์ œ๊ฑฐ ๋Œ€์‹  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟˆ
 if(typeof window===undefined)return;
 else LoginLogic;

Login.tsx ๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ๊ตฌํ˜„

์ด ๋ถ€๋ถ„๋งŒ rendering ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™๋œ๋‹ค
<NaverLogin
          clientId=",,,,,,,,,,,,,,,,,,,,,"
          callbackUrl="http://localhost:5000/์‚ฌ์šฉ์ž์ง€์ •callback"
          render={(props) => <NaverButton onClick={props.onClick}><img
            src={naver}
            alt="naver"
            style={{
              width: '100%',
              height: '100%',
            }}
          /></NaverButton>}
          onSuccess={(res) => responseLogin(res, 'naver')}
          onFailure={() => console.log('naver login fail')}
 />
react-login-by-naver ๊ณ ์นœ ๋ชจ๋“ˆ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด npm์— ๋”ฐ๋กœ ๋ฐฐํฌํ•ด ๋†“์•˜๋‹ค. ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ์‹  ๋ถ„๋“ค์€ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ๋ฐ”๋žŒ.

์›๋ณธnpm ์›๋ณธgit

4๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2020๋…„ 6์›” 22์ผ

process ์•ˆ์˜ browser๋Š” rendering ํ•˜๋Š” ์œ„์น˜ ์ฐจ์ด๋กœ ์•Œ๊ณ ์žˆ์Šต๋‹ˆ๋‹ค!
https://stackoverflow.com/questions/49411796/how-do-i-detect-i-am-on-server-vs-client-in-next-js

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2020๋…„ 9์›” 22์ผ

ํ˜น์‹œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๋ฆฌ์•กํŠธ๋กœ ์งœ์‹ ๊ฑฐ ๊ณต์œ ๋„ ๊ฐ€๋Šฅํ•˜์‹ค๊นŒ์š”?

1๊ฐœ์˜ ๋‹ต๊ธ€