【发布时间】:2020-01-02 22:20:40
【问题描述】:
我有以下功能组件,它尝试使用 react-redux-firebase 库从我的 firebase 实时数据库中查询数据:
export default function Questions() {
useFirebaseConnect([{ path: 'questions' }])
const questionList = useSelector(state => state.firebase.data['questions'])
for (var test in questionList) {
// THIS WORKS
var propValue = questionList['12342134234']['content']
console.log(propValue)
}
// THIS RESULTS IN AN ERROR
var propValue = questionList['12342134234']['content']
console.log(propValue)
}
}
现在,问题是,我无法直接访问 firebase 对象的值。当我遍历返回的对象时,我可以查看属性名称。但是,当我尝试直接访问这些属性时(通过 for 循环外的questionList[propName]),我的应用程序崩溃了,因为该值未定义。
我不明白为什么在 for 循环中执行 console.log(questionList['12342134234']) 可以工作,但是当我在外部执行时,我得到 undefined 并且我的应用程序崩溃了。这对我来说没有意义。
我也可以使用JSON.stringify() 读取对象,但是当我尝试使用JSON.parse() 解析它时,我得到SyntaxError: JSON Parse error: Unexpected identifier "undefined"。这是字符串化文本的输出:
我是否以正确的方式解决这个问题?我如何从这个返回的对象中获取各个属性值?
更新: 因此,当我执行以下操作时:
setTimeout(() => {
// let parsedList = JSON.stringify(questionList, null, 2)
// let parsed = JSON.parse(parsedList)
console.log('BP: ', questionList['12342134234'])
}, 6000)
【问题讨论】:
标签: javascript reactjs firebase parsing react-redux