Как решить Var из объема в рамках вызова метода setTimeout

Каждый раз при изменении входного значения componentDidMount запускается, и вы сбрасываете состояние до начального значения в componentDidUpdate.

componentDidUpdate(prevProps) {
    this.props.selectedEvt &&
    this.setState({
        event: this.props.selectedEvt // Here is the problem
    });
}

Также Вы меняете состояние при изменении входа. И поскольку его чистый компонент не будет обновляться.

Изменить onInputChange на

onInputChange = evt => {
    let name = evt.target.name;
    let value = evt.target.value;
    let newEvent = {...this.state.event};
    newEvent[name] = value
    this.setState({event: newEvent});
}
12
задан Lightness Races with Monica 4 May 2011 в 00:26
поделиться

3 ответа

Это - идеальный кандидат на закрытия:

setInterval(
    function ()
    {
       var myVar = document.getElementById("givenID");
       setTimeout(
          function()
          {
              // myVar is available because the inner closure 
              // gets the outer closures scope
              myVar.innerHTML = "Junk";
          },2000);
    }, 10000);

Вашей проблемой является объем, связанный, и это работало бы вокруг этого.

32
ответ дан 2 December 2019 в 03:14
поделиться

Как лучшую практику, попытайтесь не использовать строки в качестве параметров к setTimeout и setInterval потому что это вызовет eval ... Используя следующую форму мог бы также сделать эту проблему легче понять/отладить:

setInterval(function () {
    // do stuff
    // ...
    // now wait 2 secs then call someFunction
    setTimeout(someFunction, 2000);
}, 10000);
4
ответ дан 2 December 2019 в 03:14
поделиться

Выполните его в Firefox и проверьте Инструменты | Ошибочная Консоль. если сбои setTimeout это может сказать Вам почему там.

Кроме того, попытайтесь заменить "someFunction();" с "alert('hi')" (никакая точка с запятой), и видят, работает ли это. Если так, проблема значительно сужена.

1
ответ дан 2 December 2019 в 03:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: