Сначала необходимо исправить следующие ошибки:
Измените регистр верблюда itemPrice
на строчные, как это itemprice
, поскольку React не разрешает верблюдформат регистра для пользовательских атрибутов.
class
- зарезервированное ключевое слово в JavaScript.Замените: <p class="itemDesc">
на <p className="itemDesc">
.
Итак, чтобы получить доступ к значению itemprice
выбранного элемента и добавить его к свойству состояния, вам необходимоto:
Первый , передать выбранный объект события в качестве параметра в addItem()
следующим образом:
addItem(e) {
}
Второй , назначитьdiv вы только что нажали на переменную, скажем, clickObj
вот так:
addItem(e) {
let clickObj = e.currentTarget;
}
Третий , получить значение атрибута itemprice
с помощью метода getAttribute
, проанализировать егоцелому числу, а затем назначьте его другой переменной, скажем newPrice
.
addItem(e) {
let clickObj = e.currentTarget;
let newPrice = parseInt(clickObj.getAttribute('itemprice'));
}
Четвертый , Добавьте значения this.state.price
и newPrice
и затем присвойте его this.state.price
как это:
addItem(e) {
let clickObj = e.currentTarget;
let newPrice = parseInt(clickObj.getAttribute('itemprice'));
this.setState({
price: this.state.price + newPrice
});
}
Проверьте код ниже, чтобы увидеть, как я использую вышеупомянутый подход для увеличения значения свойства состояния при нажатии:
CodePen: https://codepen.io/andrewl64/pen/wRdvqP