Передача параметра из Context Consumer приводит к «TypeError»: ... не является функцией - PullRequest
0 голосов
/ 20 мая 2019

Я использую провайдера для взаимодействия с БД и сохранения значений, которые передаются компонентам потребителя:

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

Какой в ​​этом случае лучший способ передать параметр обратно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...