[Необработанное отклонение обещания: TypeError: undefined не является объектом (оценка '_ref.about')] - PullRequest
0 голосов
/ 31 марта 2020

во-первых, не судите меня, я совсем не знаком со всей реакцией на туземную сцену, а сцена Javascript и обучение в основном реагируют на туземцу для моего последнего достижения в школе.

Моя база данных Firestore

На картинке вы увидите мою базу данных. Я пытаюсь сделать это с помощью asyn c, но у меня возникла проблема.

Моя цель

Возможность добавлять и в конечном итоге редактировать / обновлять информацию о пользователях для отображения на странице профиля и на странице настроек через интерфейс.

Что происходит до сих пор

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

Мой раздел обо мне на моей странице настроек

<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> 

Пока что это не ошибка, а просто предупреждение, и я уверен, что мне не хватает больше частей кода, чтобы заставить его работать

Моя информация о добавлении Раздел моего огня. js страница

 addInfo =  async({ about }) => {

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

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

1 Ответ

1 голос
/ 31 марта 2020

Вы делаете несколько ошибок здесь:

  1. Вы упакованы в новые вещи Promise, которые уже возвращают Promise
  2. Вы используете библиотеку asyncawait вместо встроенной
  3. Вы ловите ошибку и не обрабатываете ее
  4. Вы деструктурируете userInfo, а затем снова строите ее

Я думаю, что вы пытаетесь достичь, можно сделать так это:

class YourFireClass {
 ...

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

 ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...