React-redux-firebase 正确加载数据但在组件内部不可用

React-redux-firebase loads data correctly but isnt available inside component

遵循 https://github.com/prescottprue/react-redux-firebase 中的方案(转到 基于 Props 的查询 段落)。

负责从 firebase 获取数据的代码:

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);

如果您想知道什么是 .get - state 是一个不可变的 Map。

问题:如您所见,数据提取正确,但组件未重新呈现。好像道具没变。

: 如何强制组件更新并正确接收道具?

谢谢你!

NoMoreQuestions 一起,我们找到了解决方案。我不得不使用 populate 函数而不是 get.

import { populate } from 'react-redux-firebase';

奇怪的是文档对此有不同的说法。

react-redux-firebase 的作者在这里。完全开放请求更改文档以使这一点更清楚。

需要注意的事项:原始问题使用 v1.. 语法,这与 v2.. 的语法不同存储在 redux 中(Immutable.js 不再使用)。这意味着 state.get 不再是函数。