我已经设置了redux和react,它们工作得很好。我现在想使用钩子useFirestoreConnect和useFirestore()将数据从firestore直接同步到redux状态。
下面的代码可以工作:
function BannerG() {
const dispatch = useDispatch()
// const banneAG = useSelector(state => state.banneAG)
const firestore = useFirestore();
useFirestoreConnect( props => [{collection : "layoutElements", doc: 'BannerG'}])
const aa = useSelector(state => state.firestore.data.layoutElements)
console.log(aa)在控制台中,对象打印为{BannerG:{H1: blah,H2:Blah blah,…………}}
但是如果我改用
function BannerG() {
const dispatch = useDispatch()
// const banneAG = useSelector(state => state.banneAG)
const firestore = useFirestore();
useFirestoreConnect( props => [{collection : "layoutElements", doc: 'BannerG'}])
const aa = useSelector(state => state.firestore.data.layoutElements.BannerG)
console.log(aa)当我运行时,返回一个错误,指出BannerG是未定义的。如果我尝试使用后一个,aa.BannerG.H1也会给出错误
有谁有办法解决这个问题吗?
发布于 2020-01-13 19:30:35
我不能直接在任何参考文献中找到它,但只能在示例中找到。

看起来useSelector需要像这样的方括号:
const aa = useSelector(state => state.firestore.data.layoutElements['BannerG'])我在示例github react-redux-firebase、react-redux和react-redux-firebase.com reference中发现了如下内容。
不幸的是,我现在不能测试它,所以请让我知道它是否工作。
https://stackoverflow.com/questions/59629870
复制相似问题