В React предполагается, что у меня есть целочисленная переменная myProperty, которая возвращается из getDafaultProps, если я console.log (myProperty) до и после вызова this.setProps (myProperty + 1) в функции обновления консоль регистрирует одно и то же значение для myProperty. Свойство обновляется после завершения функции и в следующий раз, когда я вызываю свою функцию, myProperty - это новое значение, но кто-нибудь знает, почему или, скорее, объясните мне, почему myProperty не обновляется сразу после вызова this.setProps ?this.setProps не обновляет автоматически
спасибо, что нашли время ответить. Соответствующий код ниже
getDefaultProps: function() {
return { colorIndex: -1 };
},
update: function() {
console.log("clicked and index is " + this.props.colorIndex); //returns -1
this.setProps({colorIndex: this.props.colorIndex + 1});
console.log("index is now " + this.props.colorIndex); /still returns -1
},
Если у вас есть переменная с изменениями значений, вы должны использовать объект 'setState' и' this.state' –
, так как я не могу найти редактирование, которое я сделал. Это потому, что это асинхронная функция и просто не успела обновиться к моменту консолидации журнала? Просто мысль. – woodwick
Почему вы используете устаревшие 'setProps' в первую очередь? Я даже не думаю, что это в реакторе. (Подтверждено, удалено в 0.14, https://github.com/facebook/react/pull/5570) В любом случае, я бы предположил, что, как и 'setState', это происходит не сразу. См. Также http://stackoverflow.com/a/25142742/438992. Более двух лет назад. –