2

遵循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- 状态是一个不可变的 Map。

在此处输入图像描述

问题:如您所见,数据正确获取,但组件没有重新渲染。好像道具没变。

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

感谢你!

4

2 回答 2

1

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

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

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

于 2018-01-05T21:17:30.537 回答
1

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

需要注意的一点:原始问题使用 v1。. 与 v2 不同的语法。. 关于事物在 redux 中的存储方式(不再使用 Immutable.js)。这意味着它state.get不再是一个函数。

于 2018-01-06T21:24:47.240 回答