Предоставление одной и той же функции нескольким компонентам React Native не работает - PullRequest
0 голосов
/ 24 мая 2018

Я использую React Native для кодирования очень простого приложения базы данных, в котором пользователи могут добавлять свои собственные символы и просматривать их позже.

Моя проблема заключается в следующем.

Часть добавленияперсонаж настраивает свои способности, это делается с помощью React Native Tags , импортированного из Ant Mobile Design.

Ниже показано, как теги отображаются в приложении.

<ScrollView horizontal={true} showsHorizontalScrollIndicator={false}>
  <Tag onChange={() => this.handleAbility('Hell')} style={{ marginRight: 7 }}> Hell </Tag>
  {this.state.abilities.map(function (ability) {
  return <Tag onChange={() =>this.handleAbility(ability.label)} style={{ marginRight: 7 }}> {ability.label} </Tag>
  })}
</ScrollView>

и это код для функции handleAbility.

handleAbility = (label) => {
let character = Object.assign({}, this.state.character);
if (character.abilities.indexOf(label) == -1) {
character.abilities.push(label);
this.setState({ character });
} else {
character.abilities.pop();
this.setState({ character });
}
}

Когда я нажимаю на тег, который я написал вручную с тегом «Ад», функция срабатывает успешно, и способность «Ад»подтолкнул к атрибутам персонажа в состоянии приложения. Однако , когда я нажимаю на любой из других тегов, которые были созданы с помощью функции карты, возникает следующая ошибка.Я пробовал несколько способов исправить это безрезультатно, любая помощь приветствуется!

TypeError

1 Ответ

0 голосов
/ 24 мая 2018

Я бы попробовал изменить эту строку:

{this.state.abilities.map(function (ability) {

на функцию стрелки, как это:

{this.state.abilities.map(ability => {

...