Реагирует на отображение вложенных значений объектов массива

#reactjs

#reactjs

Вопрос:

Вот как мой savedLinksData массив печатается в моей консоли:

введите описание изображения здесь

Вот мой код, который пытается получить linkType значение:

   {savedLinksData.map((saved) => {
        return <h1>{saved.linkType}</h1>;
      })}
 

Что я делаю не так?

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

Изображение console.log("----->", saved)

введите описание изображения здесь

введите описание изображения здесь

 const [savedLinksData, setSavedLinksData] = useState([]);

  // query for saved links data
  useEffect(() => {
    if (user) {
      async function fetchData() {
        const request = await db
          .collection("users")
          .doc(user)
          .collection("saved")
          .onSnapshot((snapshot) =>
            setSavedLinks(
              snapshot.docs.map((doc) => ({ ...doc.data(), id: doc.id }))
            )
          );
      }
      fetchData();
    } else {
      setSavedLinks([]);
    }
  }, [user]);

  useEffect(() => {
    if (savedLinks.length > 0) {
      let newArray = [];
      savedLinks.map((saved) => {
        db.collection("users")
          .doc(saved.savedUser)
          .collection("links")
          .doc(saved.savedLinkId)
          .get()
          .then(function (doc) {
            if (doc.exists) {
              // console.log("Document data:", doc.data());
              newArray.push(doc.data());
              // setSavedLinksData([...savedLinksData, doc.data()]);
            } else {
              // doc.data() will be undefined in this case
              console.log("No such document!");
            }
          })
          .catch(function (error) {
            console.log("Error getting document:", error);
          });
      });
      setSavedLinksData(newArray);
    }
  }, [savedLinks]);
 

Комментарии:

1. если вы console.log(сохраненный) над вашим оператором return, что это показывает?

2. @Ross Он печатает 6 разных объектов. Разве они не должны быть в массиве? Обновлен весь мой код.

3. Что console.log(snapshot.docs) говорит?