Я использую провайдера для взаимодействия с БД и сохранения значений, которые передаются компонентам потребителя:
this.state = {
...
abilities: {
"bra": 0,
"agi": 0,
"int": 0,
"cun": 0,
"will": 0,
"pre": 0
},
Потребитель отображает значения, и теперь мне нужно предоставить способ изменения значенийвернуться в провайдера.Я делал это раньше, передавая функцию через contextType.Теперь мне также нужно определить, какое значение объекта следует изменить, и я застрял с передачей значения, которое позволило бы мне это сделать.Я написал эту функцию в провайдере:
raiseAbility = ability => {
console.log(ability)
this.setState((state) => ({
abilities: {...state.abilities, ability: ability + 1}
}))
}
Когда я пытаюсь передать параметр (ключ объекта в состоянии провайдера), React сообщает мне, что функция не является функцией:
<Button ... onClick={this.context.raiseAbility("bra")}>+</Button>
...
TypeError: _this2.context.raiseAbility is not a function
Какой в этом случае лучший способ передать параметр обратно?