์ฌ์ฉ์๊ฐ ์์ ํ๋ ๋์ ์์คํ ์ ๊ธฐ๋ฅ์ ๋ง์ง๋ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ์ง๋ง ๋ก๊ทธ์์ํ ํ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ๊ณ ์ด์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํฉ๋๋ค. ์ด๋ป๊ฒ ํ๋์ ๋ช ๋ น๋ฌธ์ด ์ ์ฒด ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ธ ์ ์์ต๋๊น? ?
๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ด ์์คํ ๋ผ์ฐํ ์ ์ค์ฒฉ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐฉ๋ฌธ: http://localhost :8000/main/repos ์ด ๋ f5๋ฅผ ์๋ก ๊ณ ์น๋ฉด ์ ์ฒด ํ์ด์ง๊ฐ ๋น์ด ์์ต๋๋ค. ์ฝ์: Uncaught SyntaxError: Unexpected token <, index .js:1, ๊ทธ๋ฆฌ๊ณ ์ฝ์์์ ์์ค ์ฝ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค...
ํ๋์ ๋ช ๋ น๋ฌธ์ด ์ ์ฒด ์์ ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ง์ธ ์ ์์ต๋๊น?
onReducer๋ก ์์ ๊ฐ๋ก
๊ทธ๋ผ ์ฝ์์ ์์ค์ฝ๋๊ฐ ์๋ณด์ด๋ค์...
index.js
์ด /index.js
๋ณ๊ฒฝ๋จ
@bjwulin ์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. @sorrycc ๊ฐ ํฌ๊ฒ ๋งํ onReducer ๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๋ด ์ดํด๋ onReducer๊ฐ ์ ์ญ ์์
๊ณผ ์ํ๋ฅผ ๊ฐ๋ก์ฑ๊ณ ์ ์ํ๋ฅผ ๋ฐํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ด ์์์๋ ์ก์
์ด โโ๋ก๊ทธ์์์ด๋ฉด ์๋ ์ํ๋ก ๋์๊ฐ๊ณ , ์ก์
์ด ๋ก๊ทธ์์์ด ์๋๋ฉด ์์ ์ํ๋ฅผ ๋ฐํํฉ๋๋ค.
์ด์ ๋ฌธ์ ๋ ์ด๊ธฐ ์ํ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋ฌผ๋ก index.js์ ์๋ ์ํ๋ฅผ ์ง์ ์ธ ์ ์์ต๋๋ค. ํ์ง๋ง ๋น์ฆ๋์ค ๋ณํ์ ๋ฐ๋ผ ์ฌ๋ฌ ์ํ๋ฅผ ์์ ํ๊ณ ์ถ๋ค๋ฉด index.js์ ์์ ํด๋น ์ด๊ธฐ ์ํ๋ ๋ณ๊ฒฝํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ธ์์ ์ง์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ ํธ๋ฆฌํฉ๋๋ค.
์ฝ๋ ์ผ๋ ์๋์ ๊ฐ์ต๋๋ค.
const models=[];
models.push(require('./models/exhibit'));
models.push(require('./models/user'));
const initialState={};
models.forEach((m)=>initialState[m.namespace]=m.state);
const undo = r => (state, action) => {
const newState = r(state, action);
if (action.type == 'user/logoutOnlyStatus') {
return {
routing: newState.routing,
...initialState
}
}
else {
return newState
}
};
const app=dva({
onError(e){
console.log(e)
},
onReducer: undo
});
app.model(require('./models/exhibit'));
app.model(require('./models/user'));
app.router(require('./router'));
app.start('#root');
@zhangdistephen onReducer๋ฅผ ์ฌ์ฉํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ค๋ฅ๋ store์ ๊ฐ์ ์ฝ์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.๋ด ๊ฒ์ ๋ชจ๋ธ์ ๋น๋๊ธฐ์์ผ๋ก ๋ก๋ํ๋ ๊ฒ์ ๋๋ค. ๋๊ธฐ์์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํด ๋ณด์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@bjwulin ์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. @sorrycc ๊ฐ ํฌ๊ฒ ๋งํ onReducer ๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๋ด ์ดํด๋ onReducer๊ฐ ์ ์ญ ์์ ๊ณผ ์ํ๋ฅผ ๊ฐ๋ก์ฑ๊ณ ์ ์ํ๋ฅผ ๋ฐํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด ์์์๋ ์ก์ ์ด โโ๋ก๊ทธ์์์ด๋ฉด ์๋ ์ํ๋ก ๋์๊ฐ๊ณ , ์ก์ ์ด ๋ก๊ทธ์์์ด ์๋๋ฉด ์์ ์ํ๋ฅผ ๋ฐํํฉ๋๋ค.
์ด์ ๋ฌธ์ ๋ ์ด๊ธฐ ์ํ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฌผ๋ก index.js์ ์๋ ์ํ๋ฅผ ์ง์ ์ธ ์ ์์ต๋๋ค. ํ์ง๋ง ๋น์ฆ๋์ค ๋ณํ์ ๋ฐ๋ผ ์ฌ๋ฌ ์ํ๋ฅผ ์์ ํ๊ณ ์ถ๋ค๋ฉด index.js์ ์์ ํด๋น ์ด๊ธฐ ์ํ๋ ๋ณ๊ฒฝํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ธ์์ ์ง์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ ํธ๋ฆฌํฉ๋๋ค.
์ฝ๋ ์ผ๋ ์๋์ ๊ฐ์ต๋๋ค.