Попов Дмитрий
17 мар. 2019 г., 9:07

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, }); }} />)}

Не могу разобраться, где затык.
Дима, привет!

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

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

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

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

Добавить комментарий