У меня есть элемент кнопки, который вызывает другой файл javascript в моей рабочей области.
<Button
onClick={() =>
SendRegister(
{
registrationType: 'email',
latitude: 55,
longitude: 100,
distance: 100,
email: 'email@testemail.com'
}
)
}>
Set Up Notifications
</Button>
В другом файле javascript я записываю информацию, полученную в firebase:
import React, { useState, useEffect } from "react";
import firebase from "./firebase";
function SendRegister(props) {
alert('in Send register');
alert(JSON.stringify(props));
var db = firebase.firestore();
if (props.registrationType === 'email') {
db.collection("emailAlerts")
.add({
email: props.email,
latitude: props.latitude,
longitude: props.longitude,
distance: props.distance,
status: "active"
})
.then(function(docRef) {
return docRef.id;
})
.catch(function(error) {
return("Error adding document: " + error);
});
}
}
export default SendRegister;
В firebase я вижу записи, успешно записываемые, однако я не уверен, как чтобы получить возвращаемые функции обратно в скрипт, где я вызвал onClick
.
Я попытался обернуть функцию SendRegister в useState
константу, например setStatus(SendRegister...
, для захвата возврата, но я получил undefined
обратно в возвращении. Я посмотрел и поднял состояние, которое имеет смысл для элемента / компонента, но не уверен, как это вписывается в такую функцию, как SendRegister
. Я считаю, что избыточность и useContext
- это вариант, но я хочу убедиться, что не существует более простого способа передачи переменных с одной страницы на другую, который я не рассматриваю.