我试图从"doc.data"使用变量,问题是我想用不同的字段名重用该函数。
这是代码:
btnsEditvalue.forEach((btn) => {
btn.addEventListener("click", async (e) => {
try {
propToEdit = e.target.dataset.prop;
const doc = await getElement(e.target.dataset.id, col);
const element = doc.data();
console.log(element.propToEdit)
editElement.value = element.e.target.dataset.prop;
id = doc.id;
}
catch {
console.log("error");
}
});
});
输出未定义,因为"propToEdit"不是我的数据库中的字段。
您可以尝试使用括号符号来传递动态密钥,而不是使用点符号。
引用javascript对象属性访问器
const element = doc.data()
const ELEMENT_KEY: string = 'propToEdit'
console.log(element[ELEMENT_KEY])
您可以使用自定义名称动态访问字段
fieldName = "stringValue"
element[fieldName]
这完全取决于doc
和doc.data()
的维护位置
您也可以将它包装成一个函数,这将返回值或null。您可以将null替换为您想要的任何其他默认值。
function getField(fieldName, doc){
return doc.data()[fieldName] || null;
}