路由转换后createContainer不接收数据(React Router)

时间:2017-06-19 07:07:01

标签: reactjs meteor react-router

我正在使用ReactMeteorReact Router来购买大型应用。

当我浏览浏览器历史记录时,即使我前进,createContainer提供的数据似乎也消失了。到目前为止,我尝试了一切,但这个问题仍然存在。你们有谁知道为什么会这样吗?怎么解决?任何帮助将不胜感激。

如果我强制整页刷新,一切都很好。

我的一个组件的出口:

export default createContainer( ( params ) => {
  const subs = {}
  subs.image = Meteor.subscribe('contents.images');
  subs.provider = Meteor.subscribe('contentProviders.images');

  const data = {}
  data.image = CloudinaryImageContent.findOne({ _id: params.match.params.id });
  data.provider = CloudinaryProvider.findOne();

  return { subs, data }
}, ImageContentEditPage);

在我的包裹组件中,我只是运行componentWillReceiveProps

componentWillReceiveProps = ({data}) => {
  this.setState({provider: data.provider, image: data.image});
}

1 个答案:

答案 0 :(得分:0)

在这种特定情况下,我最终使用componentDidMount对数据可用性进行了一些基本验证。

componentDidMount = () => {
  const { data } = this.props;
  this.setState({provider: data.provider || {}, image: data.image || {}});
}

这就完成了工作。