Reactjs createContainer在路由转换后不接收数据(React路由器)

Reactjs createContainer在路由转换后不接收数据(React路由器),reactjs,meteor,react-router,Reactjs,Meteor,React Router,我正在为一个大型应用程序使用React、Meteor和React路由器 当我在浏览器历史记录中返回时,甚至当我前进时,createContainer提供的数据似乎消失了。到目前为止,我尝试了一切,但这个问题仍然存在。你们知道为什么会这样吗?如何解决?任何帮助都将不胜感激 如果我强制刷新整个页面,一切都很好 我的一个组件的导出: export default createContainer( ( params ) => { const subs = {} subs.image = M

我正在为一个大型应用程序使用
React
Meteor
React路由器

当我在浏览器历史记录中返回时,甚至当我前进时,
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);

在我的包装组件中,我只是运行一个
组件willreceiveprops

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

在这个特定场景中,我使用了
componentDidMount
,并对数据可用性进行了一些基本验证

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

这就完成了任务。

在这个特定场景中,我最终使用了
componentDidMount
,并对数据可用性进行了一些基本验证

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

这就完成了任务。

如果您在console.log(subs)中获得了结果?如果我使用链接或history.push导航到页面,一切都很好,一旦我按下“后退”按钮,以前的数据就会消失,如果我按下“下一步”按钮(浏览器),也会发生同样的情况。请在createContainer中记录一些内容并检查。createContainer肯定应该在返回路线时运行。从表面上看,我想说,由于某种原因,您的订阅正在发生变化。尝试找出原因。
subs
未定义。这就是我的数据消失的原因。你们知道为什么会这样吗?这是一个非常奇怪的行为。
组件WillReceiveProps
在我使用浏览器历史导航按钮返回上一条路线时不会触发。如果在console.log(subs)中得到结果?如果我使用链接或历史导航到页面。按一下,一切正常,一旦我按下后退按钮,以前的数据就会消失,如果我点击下一步按钮(浏览器的),也会发生同样的情况。请在createContainer中登录一些内容并检查。createContainer肯定应该在返回路线时运行。从表面上看,我想说,由于某种原因,您的订阅正在发生变化。尝试找出原因。
subs
未定义。这就是我的数据消失的原因。你们知道为什么会这样吗?这是一个非常奇怪的行为。
组件willreceiveprops
在我使用浏览器历史导航按钮返回上一路线时不会触发。