1
我對大型應用程序使用React
,Meteor
和React Router
。createContainer在路由轉換後沒有收到數據(反應路由器)
當我瀏覽瀏覽器歷史記錄時,甚至當我繼續前進時,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});
}
如果在console.log(subs)中得到結果? –
如果我使用Link或history.push導航到頁面,一切都很好,一旦我點擊後退按鈕之前的數據消失,如果我點擊下一個按鈕(瀏覽器),也會發生同樣的情況。 –
請在createContainer中記錄一些內容並檢查。 createContainer應該回到路線上。 從它的外觀來看,我會說你的訂閱是由於某種原因而改變的。試圖找出原因。 – Sudhanshu