Функция внутри renderItem в плоском списке - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть плоский список, и он работает нормально, я пытаюсь поместить функцию в код, который отображает мой элемент, но он выдает мне ошибку, и мне нужно поместить функцию туда, чтобы я мог прочитать свойства элементавот мой код:

_renderItem ({ item, index}) {
     _shareText() {
          Share.share({
            message: item.name,
          })
        } 
return (
 <Button title="Share" onPress={this._shareText}/>
);
}

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Вам необходимо отделить вашу функцию _shareText от вашей функции _renderItem.

Таким образом, в вашем классе создайте свою функцию _shareText и присвойте ей параметр item.Теперь это должно выглядеть примерно так:

_shareText(item) {
  Share.share({
    message: item.name,
  });
} 

Затем измените вашу _renderItem функцию на следующую:

_renderItem ({ item, index}) {
  return (
   <Button title="Share" onPress={this._shareText.bind(this, item)}/>
  );
}

Причина, по которой ваш вызов не работал, заключалась в том, что сначала *Функция 1014 * не была в правильном месте, во-вторых, вы не передавали элемент в качестве параметра функции _shareText, в-третьих, вам нужно привязать функцию _shareText к конкретному экземпляру отображаемого элемента.

0 голосов
/ 15 декабря 2018

попробуйте это, я вижу, что _shareText не определен как функция в компоненте

_shareText(item) {
  Share.share({
    message: item.name,
  })
}

_renderItem({ item, index }) {
  return (
    <Button title="Share" onPress={() => { this._shareText(item); }} />
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...