Итак, у меня есть это:
let total = newDealersDeckTotal.reduce(function(a, b) {
return a + b;
},
0);
console.log(total, 'tittal'); //outputs correct total
setTimeout(() => {
this.setState({dealersOverallTotal: total});
}, 10);
console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); //outputs incorrect total
newDealerDeckTotal - это просто массив чисел [1, 5, 9]
, например. однако this.state.dealersOverallTotal
не дает правильного результата, а total
дает? Я даже поставил задержку тайм-аута, чтобы увидеть, решило ли это проблему. какие-либо очевидные или я должен разместить больше кода?
setState
. - person Felix Kling   schedule 03.01.2017setState
действительно выполняется после регистрации состояния. Я думаю, что вы хотели сделать при отладке частьconsole.log
внутри тайм-аута, аsetState
- снаружи. - person Fabian Schultz   schedule 03.01.2017if(this.state.playersOverallTotal > 21){ console.log('bust'); this.setState({playerBusted: true}); }
когда он достигает значения более 21, журнал запускается, но состояние не изменяется, а затем изменяется только после того, как число снова увеличивается. например если бы он достиг 24, он не установил бы состояние, но затем, если бы он достиг 28, например, он бы - person The worm   schedule 03.01.2017