Неопределенный - это не объект?

Я получаю следующую ошибку:

undefined is not an object (evaluating 'item.id')

У меня есть это. Получить предметы и удалить предметы:

    getItems = async () => {
    this.setState({ refreshing: true });
    this.unsubscribe = await this.ref.onSnapshot((querySnapshot) => {
          const todos = [];
          querySnapshot.forEach((doc) => {
            todos.push({
              id: doc.id,
              tips: doc.data().tips,
              date: doc.data().date,
              user: doc.data().user,
              like: doc.data().like,
            })
            this.ref.get().then(function(documentSnapshot) {
              // check and do something with the data here.
            });
          })
          this.setState({
            refreshing: false,
            getData: todos
          })
        })
  }
  deletePost({ item, index }){
    var deleteItemId = item.id;
     firestore.collection("tips").doc(deleteItemId).delete().then(function() {
          alert("deleted", deleteItemId)
      }).catch(function(error) {
          alert("Error removing document: ", error);
      });
  }

Визуализированные элементы вроде:

renderItem = ({ item, index }) => {

    return (
        <Text onPress={() => this.deletePost(item.id)}>Delete</Text>
    )
 }

Это item.id похоже на NnX57tSpqvPvIUN7tRY4

sdfsifh - это строка.
Bhojendra Rauniyar 10.09.2018 09:21

вы проверили тип? Кажется, это строка

Ricardo Costa 10.09.2018 09:21

Хм, добавил ошибку получаю. Это не определено

vemund 10.09.2018 09:22

Нет, вывод будет «NnX57tSpqvPvIUN7tRY4» и «iIRTop4TKOBdL5o6dIO3»

vemund 10.09.2018 09:25
4
4
112
1

Ответы 1

Кажется, вы вызвали метод, когда есть возможность undefined. Убедитесь, что item.id не является undefined:

deleteItemId && firestore.collection("tips").doc(deleteItemId).delete()

Другие вопросы по теме