Pivkarta.ru. Не работает обновление горечи в карточке пива.

Нужна подсказка, сам не додумкал(

Проблема: при редактировании пива не сохраняется измененный параметр горечи (IBU).

Ошибка: Variable "$data" got invalid value { bitter: "16" }; Expected type Int at value.bitter; Int cannot represent non-integer value: "16"

Вроде как все понятно - каким-то образом пролезает не Int значение, а иное (видимо строковое). Но здесь https://github.com/Pivkarta/pivkarta.ru/blob/dima/src/modules/Page/Beers/Beer/View/index.js на 418 строке вроде как вполне переводит в Int.

Привожу блок:

{this.renderField(<TextField
												name="bitter"
												value={bitter || ""}
												type="number"
												helperText={bitter ? <Bitter
													bitter={bitter}
												/> : "10, 20, 40 и более до 100"}
												onChange={event => {

													const {
														name,
														value,
													} = event.target;											

													//console.log("onChange_bitter", name, value, event.target);
													console.log("onChange_bitter", bitter);

													this.updateObject({
														[name]: value ? parseInt(value) : null,
													});

												}}
								/>)}

Не могу разобраться, где затык.

Comments

Дима, привет!

  1. Чтобы не писать в какой строке что искать, на гитхабе слева можно в номер строки кликать, в ссылку добавится. Можно с шифтом диапазон строк отмечать.

  2. Бага была в исходном классе. Смотри вот этот коммит. Там передаваемый параметр onChange перетирался заранее заготовленной функцией onChange={event => this.onChange(event)}

Тебя вообще должно было напрячь, что console.log("onChange_bitter", bitter); у тебя прописано, но в консоль не выводится.

Спасибо!

" Тебя вообще должно было напрячь, что console.log("onChange_bitter", bitter); у тебя прописано, но в консоль не выводится." - меня и напрягло, но понять не получилось)

меня и напрягло, но понять не получилось) :) Обращай внимание на то, какой класс расширяется. Это типа ООП.