我正在使用React
,Meteor
和React 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});
}
答案 0 :(得分:0)
在这种特定情况下,我最终使用componentDidMount
对数据可用性进行了一些基本验证。
componentDidMount = () => {
const { data } = this.props;
this.setState({provider: data.provider || {}, image: data.image || {}});
}
这就完成了工作。