๋ค์ด๋ฒ์์ด๋๋ก ๋ก๊ทธ์ธ 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
process ์์ browser๋ rendering ํ๋ ์์น ์ฐจ์ด๋ก ์๊ณ ์์ต๋๋ค!
https://stackoverflow.com/questions/49411796/how-do-i-detect-i-am-on-server-vs-client-in-next-js