React-redux firebase正确加载数据,但在组件内部不可用
以下方案来自(转到基于道具的查询段落) 负责从firebase获取数据的代码:React-redux firebase正确加载数据,但在组件内部不可用,firebase,redux,react-redux-firebase,Firebase,Redux,React Redux Firebase,以下方案来自(转到基于道具的查询段落) 负责从firebase获取数据的代码: export default compose( firebaseConnect((props) => [ `offers/${props.params.userId}`, ]), connect((state, props) => { console.log(state.get('firebase')) // <--- logs data correctly re
export default compose(
firebaseConnect((props) => [
`offers/${props.params.userId}`,
]),
connect((state, props) => {
console.log(state.get('firebase')) // <--- logs data correctly
return {
user: get(state.get('firebase'), `offers/${props.params.userId}`),
};
})
)(UserProfile);
导出默认值(
firebaseConnect((道具)=>[
`提供/${props.params.userId}`,
]),
连接((状态、道具)=>{
console.log(state.get('firebase'))/以及我们找到了一个解决方案。我不得不使用填充
函数,而不是获取
import { populate } from 'react-redux-firebase';
奇怪的是,文档对此却有不同的说法。这里是react-redux firebase
的作者。完全开放以获取对文档的更改请求,以使这一点更加清楚
需要注意的是:原始问题使用v1..语法,这与v2..在redux中的存储方式不同(不再使用Immutable.js)。这意味着state.get
不再是一个函数。如果我错了,请纠正我,不是get(state.get('firebase'))
返回一个承诺?而您正试图将一个未实现的承诺分配给用户
?无论如何,最好让您的数据获取发生在action creator中,然后将该有效负载传递给您连接的减速机
,并将其映射或分派到道具。另外,控制台.log(state.get('firebase'))
不同于(用户:get(state.get('firebase'))
?@NoMoreQuestions-Hmm,90%确定firebase
是一个对象。它很可能与我在文档中显示的分解它相同(({firebase})
)。另外请注意,firebase
已经是一个连接的减速机,具有内置的动作创建者。@nomore问题是的,它只是从官方文档中复制粘贴,应该..起作用:/如果您的控制台.log()
打印您的数据,但用户
仍然是未定义的
,则有点可疑。您是否将它们更改为相同的?