можно установить таймер на состояние редуктора?Реакт + Редукс - PullRequest
0 голосов
/ 20 февраля 2019

можно установить таймер для сброса состояния редуктора?у меня есть состояние, чтобы показать сообщение «успех», «ошибка», «предупреждение»

Пример:

Редуктор:

const statusState = {
   status: {action: '', result: ''}
}

...

CASE fetchContent:
    return {
      ...state,
      contents: [...state.contents, action.data],
      status: {
        ...state.status,
        action: action.type,
        result: action.result
      }
    }

Компонент:

render(){
   cost { status } = this.props

   if(status.action == "something" && status.result == "success"){
      alert("success");
   }
}

const mapStateToProps = store => ({
       status: store.initialState.status
   });

   export default connect(mapStateToProps)(Component);

если я не очищаю status.action и status.result, предупреждение будет отображаться постоянно, можно установить таймер для его очистки?

1 Ответ

0 голосов
/ 20 февраля 2019

Создать очистить действие, которое очищает status.action и status.result.Создайте функцию тайм-аута Javscript, которая вызывает действие по истечении времени ожидания.Примерно так:

 clearStatus = ()=>{
       setTimeout(
        function() {
            //create a action that clears status and result
        },3000
       );
    }   

     render(){
           cost { status } = this.props

           if(status.action == "something" && status.result == "success"){
             //showMessage 
             clearStatus();
           }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...