簡體   English   中英

[未處理的承諾拒絕:類型錯誤:未定義不是對象(評估'_ref.about')]

[英][Unhandled promise rejection: TypeError: undefined is not an object (evaluating '_ref.about')]

首先,不要評判我,我對整個 React Native 場景和 Javascript 場景都很陌生,學習主要是為了我在學校的最后一個頂點。

我的 Firestore 數據庫

在圖片中,您將看到我的數據庫,我正在嘗試使用 async 進行操作,但遇到了問題。

我的目標

能夠添加並最終編輯/更新用戶信息以通過前端顯示在個人資料頁面和設置頁面上。

到目前為止發生了什么

我能夠通過后端工作讓它工作。 這意味着我正在物理上進入我的數據庫並以這種方式添加和更改它,但這不是我想要發生的事情。 我希望我的用戶擁有完全控制權。

我的“設置”頁面中的“關於我”部分

<Block row space="between" margin={[10, 0]} style={styles.inputRow}>
              <Block>
              <Text gray2 style={{ marginBottom: 10 }}>
                  Bio
                </Text>
                {this.renderEdit("about")}
              </Block>
              <Text
                medium
                secondary
                onPress={() => this.toggleEdit("about")}
              >

                {editing === "about" ? "Save" : "Edit"}

              </Text>
             <Button 
                onPress={() => { 
                 Fire.shared.addInfo(); 
                }} 
                title="Add" 
            />       
            </Block> 

到目前為止,這不是錯誤而只是警告,我確定我缺少更多代碼以使其正常工作

我的 fire.js 頁面的添加信息部分

 addInfo =  async({ about }) => {

            return new Promise ((res, rej) => {
                this.firestore
                .collection("users")
                .add ({
                   about,
                })
                .then(ref => {
                    res(ref);
                })
                .catch(error => {
                    rej(error);
                });
            });
          };

我在這里做錯了什么。 如果有人可以提供幫助,我會很失落,那就太好了

你在這里犯了幾個錯誤:

  1. 你正在用已經返回 Promise 的新 Promise 東西包裝
  2. 您正在使用asyncawait庫而不是內置庫
  3. 您正在捕獲錯誤而不是處理它
  4. 您正在解構 userInfo 然后再次構建它

我想你想要實現的目標可以是這樣的:

class YourFireClass {
 ...

 addInfo(userInfo) {
    return this.firestore.collection("users").add(userInfo);
 }

 ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM