Redux Saga не перенаправляет / маршрутизирует для выхода - PullRequest
2 голосов
/ 22 мая 2019

После успешного входа в систему у меня есть кнопка выхода из системы в app.js, на которую я нажимаю и должен перенаправить на страницу входа.У меня нет никакого маршрута для выхода из системы index.js. Нам это нужно?

Я написал сагу только то, что работает нормально, единственная проблема в том, что он не перенаправляет к / входу из саги.Это правильная практика.Он никогда не перенаправляет по любому из следующих маршрутов:

app.js

logoutAction = () => {

  this.props.doLogoutAction();

  this.props.history.push('/sign') //I'venow implemented this and not routing via saga.-------------1>Please read updated
}
<button onClick = {this.handleLogot.bind(this)}> </button>

reducer.js

const initialState = {
  username: "",
  isLoggedIn: false
};

case LOGIN_SUCCESS:
  return { ...state,
    isLoggedIn: true,
    payload: action.payload.isLoggedIn
  };
case LOGIN_FAILED:

  return { ...state,
    isLoggedIn: false,
    payload: ''
  };
case LOGOUT_SUCCESS:

  return { ...state,
    isLoggedIn: false,
    payload: ''
  };
default:
  return state;

saga.js

** // здесь я помещаю действие успешного выхода из системы для отправки **

yield put({
  type: LOGOUT_SUCCESS,
  payload: false
})


// history.push('/signIn')
//yield put(push('/signIn'))
//yield call(push,'/signIn')
this.props.history.push('/signIn')

только над двумя строками - сага

Я пробовал все это, но тогда это не работает.Может кто-нибудь, пожалуйста, дай мне знать, где я иду не так.Есть ли какое-то другое решение, которое мы можем реализовать?Кто-нибудь работал над выходом из системы / входом в ваши проекты?

Update-1

после того, как я помещаю историю, нажимаю на выход, он работает, я удалил из саги, это работает, но из-за редуктора это перенаправляетв app.js.Как и в редукторе, isLoggedIn не обновляется, куда отправляется идентификатор успешного входа в действие.Кажется, я делаю что-то не так.Пожалуйста, дайте мне знать, где я могу пойти не так.

Update-2 Теперь редуктор работает для выхода из системы. Я могу выйти из системы. Но теперь есть проблема: я не могу войти в систему как только действие.не вызывается

LoginAction.js

      return{
                    type:LOGIN_ACTION,
                    payload:params

                }
...