Значения состояния реакции не обновляются

У меня есть следующие данные JSON, которые необходимо обновлять в состоянии src каждые 5 секунд. Я попытался распечатать данные в консоли, которые отображаются полностью нормально, но не обновляются в состоянии после каждого сна в течение 5 секунд.

Пример данных JSON журналов Json

var Logs={
        Router:[{"a":"1"}],
        Validation:[{"b":"1"}],
        Transformation:[{"c":"1"}],
        Execution:[{"d":"1"}],
        Response:[{"e":"1"}]

    }

Вот мой код

    var LogData={};
    LogData["Router"]=Logs.Router;

    //Requesting Router        
       _this.setState({
            cssRequest:ClassProgressDone,
            src:LogData,
        });
        console.log(LogData);   

        _this.sleep(5000).then(() => {
            LogData["Validation"]=Logs.Validation;
            console.log(LogData);      

            _this.setState({
                cssValidate:ClassProgressDone,
                src:LogData,
            });

            _this.sleep(5000).then(() => {
                LogData["Transformation"]=Logs.Transformation;
                console.log(LogData);       
                _this.setState({
                    cssTransform:ClassProgressDone,
                    src:LogData,
                });

                _this.sleep(5000).then(() => {
                    LogData["Execution"]=Logs.Execution;
                    console.log(LogData);
                    _this.setState({
                        cssExecution:ClassProgressDone,
                        src:LogData,
                    });

                        _this.sleep(5000).then(() => {
                            LogData["Response"]=Logs.Response;
                            console.log(LogData);
                            _this.setState({
                                cssCompleted:ClassProgressDone,
                                src:LogData,
                            });
                        });
                });


            });


        }); 

функция сна

 sleep(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
      }

Любая подсказка, что я делаю не так?

какова реализация this.sleep? и находится ли этот код в componentDidMount или что-то в этом роде?

stilllife 13.09.2018 19:40

@stilllife Добавил рассматриваемую функцию сна. Это выполняется при нажатии кнопки.

Abhishek Ginani 13.09.2018 19:42

Можете ли вы проверить с помощью инструментов реагирования разработчика, действительно ли состояние обновлено? Можете ли вы показать конструктор и переопределить его с помощью _this?

stilllife 13.09.2018 19:44

_this находится в той же функции этого кода, что и var _this=this;

Abhishek Ginani 13.09.2018 19:47

Вместо того, чтобы гнездиться спит. Вы думали об использовании setInterval ()?

Cody S 13.09.2018 19:56

Я бы попытался клонировать LogData с помощью Object. assign или оператор распространения, потому что для состояния set может потребоваться, чтобы неизменяемые объекты обнаруживали изменение

stilllife 13.09.2018 20:01

Нет, setInterval () не пробовал. Пожалуйста, помогите в использовании того же

Abhishek Ginani 13.09.2018 20:03
0
7
57
0

Другие вопросы по теме