Dva: ПослС Π²Ρ‹Ρ…ΠΎΠ΄Π° систСмы ΠΈΠ· систСмы, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΈ сообщаСтся ΠΎΠ± ошибкС, ΠΊΠΎΠ³Π΄Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ обновляСт страницу.

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 9 Ρ„Π΅Π²Ρ€. 2017  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: dvajs/dva

Π’ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ систСма сохраняСт Π΄Π°Π½Π½Ρ‹Π΅ послСднСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· систСмы Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² систСму ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ всС Π΅Ρ‰Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. Как ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ всСм Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ?

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Моя систСмная ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅: http: // localhost : 8000 / main / repos. Π’ это врСмя, ΠΊΠΎΠ³Π΄Π° f5 обновляСтся, вся страница пуста. Консоль: Uncaught SyntaxError: Unexpected token <, index .js: 1, Π° ΠΏΠΎΡ‚ΠΎΠΌ я Π½Π΅ Π²ΠΈΠΆΡƒ исходный ΠΊΠΎΠ΄ Π½Π° консоли ...

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

@bjwulin Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ» эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Богласно Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сильно сказал
Π’Π΅ΠΏΠ΅Ρ€ΡŒ вопрос Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ исходноС состояниС прямо Π² 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');

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Как ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ всСм ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅?

ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ дСйствиС с onReducer

Π’ΠΎΠ³Π΄Π° я Π½Π΅ Π²ΠΈΠΆΡƒ исходный ΠΊΠΎΠ΄ Π½Π° консоли ...

index.js ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° /index.js

@bjwulin Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ» эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Богласно Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сильно сказал
Π’Π΅ΠΏΠ΅Ρ€ΡŒ вопрос Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ исходноС состояниС прямо Π² 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 Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ.Моя - Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ модСль асинхронно, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° синхронный каТСтся Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ