ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ "ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅" ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ "ΠΎΡΠΏΡΠ°Π²ΠΊΠ°" Π² ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡ
ΠΈΠ»ΠΈ ΡΡΡΠ΅ΠΊΡ "ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ"?
ΠΠ»ΠΈ Ρ
ΠΎΡΡ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡ
Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ.
Π― Ρ ΡΠ°Π½Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ ΡΠΈΠΏΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , ΡΡΠΎ, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ Π΄Π»Ρ redux (ΡΠΌ., ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π΄Π΅ΡΡ )
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Ρ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² Π΄Π²ΡΡ ΡΡΡΠ΅ΠΊΡΠ°Ρ , ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ .
ΠΡΠΈΠΌΠ΅Ρ:
actionTypes.js:
export const TOKEN_RESTORED = 'auth/TOKEN_RESTORED';
actions.js:
export default {
tokenRestored: payload => ({type: TOKEN_RESTORED, payload: payload.token})
};
model.js:
app.model({
namespace: ...,
state: { ... },
effects: { ... },
subscriptions: {
setup({dispatch}) {
let token = localStorage.token;
if (token) {
dispatch(actions.tokenRestored({token}));
}
}
}
});
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄, Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠΈΠΏΠ°:
Warning: dispatch: auth/tokenRestored should not be prefixed with namespace auth
Π‘ΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π° - ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡ, ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ dva Π½Π°ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
Π£ΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ redux-Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΡΡ
ΠΈΠ·-Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ.
Π― ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠ»-ΡΠ΅ΠΊΠ²Π΅ΡΡ Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ https://www.npmjs.com/package/babel-plugin-dev-expression Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°.
Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ?
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Babel, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ create response?
ΠΠΎΡΠ΅ΠΌΡ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ?
19 ΠΈΡΠ»Ρ 2017 Π³. Π² 06:25 "chencheng (δΊ θ°¦)" [email protected] Π½Π°ΠΏΠΈΡΠ°Π»:
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ https://www.npmjs.com/package/babel-plugin-dev-expression
ΡΠ±ΡΠ°ΡΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½Ρ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°.-
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ Π°Π²ΡΠΎΡΠΎΠΌ ΡΠ΅ΠΌΡ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/dvajs/dva/issues/988#issuecomment-316261873 ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π·Π²ΡΠΊ
Π½ΠΈΡΡ
https://github.com/notifications/unsubscribe-auth/ABJVKPRJMf0P0qVcTgOm-UH4q9RCNpg4ks5sPXcTgaJpZM4N9hlv
.
@orzarchi Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ @sorrycc ΠΎΡΠ΅Π½Ρ Π·Π°Π½ΡΡ ΠΈ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½ Π½Π° ΠΎΡΠΊΡΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΡ Π΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΡΡΠ°ΡΠΈ, Π²Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ?
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° Π΄ΡΡΠ³Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΎΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ:
// realtime.js
yield put({ type: 'message', payload: { message } });
ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ:
// someModel.js
const message = yield take('realtime/message');
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠ΄Π΅Π»Ρ realtime
Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Ρ ΡΠ°ΠΌΠΎΠΉ message
, ΠΎΠ½Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° message
. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ yield put({ type: 'message', payload: { message } })
Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² dvajs, ΠΈ realtime/message
Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ.
Π Π΅ΡΠ»ΠΈ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡ Π²ΡΡΡΠ½ΡΡ:
// realtime.js
yield put({ type: 'realtime/message', payload: { message } });
ΠΎΠ½ Π²ΡΠ΄Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ ('... Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ ...')
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΡΡΡΠ΅ΠΊΡ:
// realtime.js
'effects': {
// dvajs requires effect to be defined to auto-prefix it with namespace
// if add prefix manually then dvajs throws annoying warnings
// https://github.com/dvajs/dva/issues/988
message: () => { },
}
Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ realtime/message
.
ΠΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅.
ΠΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ ΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΡΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ), ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΡ ΠΈΡ
Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ.
Π― Π΅ΡΠ΅ Π½Π΅ Π½Π°ΡΠ΅Π» ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ dva Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π°.
Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ°Π·Π΄ΡΠ²Π°Ρ Π½Π° Π²Π΅ΡΠ΅ΡΠΈΠ½ΠΊΡ, Π½ΠΎ ΡΡΠΎ Ρ ΠΈΡΡΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π», ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ.
`` `// ΠΌΠΎΡ-ΠΌΠΎΠ΄Π΅Π»Ρ.js
console.error = message => {
if (message.indexOf ("prefixNamespace") === -1) {
console.log (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅);
}
};
Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ°Π·Π΄ΡΠ²Π°Ρ Π½Π° Π²Π΅ΡΠ΅ΡΠΈΠ½ΠΊΡ, Π½ΠΎ ΡΡΠΎ Ρ ΠΈΡΡΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π», ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ.
console.error = message => { if (message.indexOf("prefixNamespace") === -1) { console.log(message); } };
ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΡΠ½ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄? Π³Π΄Π΅ ΡΡ ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»?
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² src / app.tsx. Π Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ console.error Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ console.error Π² console.log, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄
const errorLog = console.error;
console.error = (...rest) => {
if (rest[0] && rest[0].indexOf('[sagaEffects.put]') === -1) {
errorLog.call(console, ...rest);
}
};
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² src / app.tsx. Π Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ console.error Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ console.error Π² console.log, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄
const errorLog = console.error; console.error = (...rest) => { if (rest[0] && rest[0].indexOf('[sagaEffects.put]') === -1) { errorLog.call(console, ...rest); } };
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΈ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΡΠ΄Π° ΡΠ³ΠΎΠ΄Π½ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ :))
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ°Π·Π΄ΡΠ²Π°Ρ Π½Π° Π²Π΅ΡΠ΅ΡΠΈΠ½ΠΊΡ, Π½ΠΎ ΡΡΠΎ Ρ ΠΈΡΡΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π», ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ.
`` `// ΠΌΠΎΡ-ΠΌΠΎΠ΄Π΅Π»Ρ.js
console.error = message => {
if (message.indexOf ("prefixNamespace") === -1) {
console.log (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅);
}
};