【发布时间】:2021-01-29 11:55:18
【问题描述】:
我有一个返回对象的函数。
看起来像这样
const aggResults = data => {
const { surveyName, questionId } = data
const db = firebase.firestore()
const surveyData = db.collection('surveys').doc(surveyName)
return surveyData.onSnapshot(doc => {
console.log('test', doc.data().aggResults[questionId])
return doc.data().aggResults[questionId]
})
}
来自同一个文件,我这样调用我的函数
{
...
output: {
...
function: () => aggResults({ surveyName: '...', questionId: '...' }),
},
},
在一个单独的文件中,我想根据 aggResults 返回的内容更新我的状态。
我使用了一个 useEffect 钩子来做到这一点
const [data, updateData] = useState({})
useEffect(() => {
if (!_.isUndefined(question.output)) {
question.output.function().then(res => updateData(res))
} else {
console.log('q', question.output)
}
}, [question])
我目前遇到的错误是 TypeError: question.output.function().then is not a function
我哪里出错了?
【问题讨论】:
标签: javascript oop google-cloud-firestore functional-programming