2016-12-02 16 views
0

我正在嘗試將Meteor設置爲React Native(目前爲止僅適用於Android)應用程序的後端服務器,並且已經使用React Native Meteor Boilerplate作爲起點,其中我在本地端口上設置了服務器,然後連接它在設備上。雖然流星客戶端/服務器接口是非常動態的,我很困惑,爲什麼應用程序不更新與服務器代碼的更改。例如:如何更改Meteor服務器端數據並重新發布到React Native應用程序?

var seed =() => { 
if (Details.find().count() === 0) { 
    for (let i = 0; i < 10; i++) { 
    Details.insert({ 
    name: `Detail #${i}` 
    }); 
. . . 

顯示在應用程序的項目細節#0,#細節1等一個ListView但如果我更改此代碼,通過刪除字說「細節」的應用程序隨時顯示加載圖標,但然後重新顯示相同的列表...即使我重新啓動服務器和/或註銷並返回到應用程序。

如何更改服務器上的數據以使其反映在應用程序上?它以某種方式被緩存,以便我的更改不顯示?在此先感謝

+1

如果您讓服務器繼續運行,並打開另一個終端並在您的應用程序目錄中運行'meteor shell',會發生什麼情況。在這個shell中,嘗試執行'Details.insert({name:'Testing 1,2,3'})'並檢查你的客戶端是否接收到新項目。 – JeremyK

+0

此外,如果您已經有詳細資料中的項目,此代碼將不會更改列表。這就是爲什麼它重新顯示相同的列表? – JeremyK

+0

@JeremyK - 感謝您的回覆,是的,當我做Details.insert它的應用程序更新..woohoo!顯然,我只需要了解更多關於使用MongoDB的知識。如果您發佈「Learn Mongo!」的答案也許包括一個好的鏈接,我會接受它作爲答案。再次感謝! – kwishnu

回答

0

如果您的列表視圖顯示來自Details集合中的項目,並且其中包含項目,Details.find().count() === 0評估爲false,因此集合實際上並未發生更改。
我懷疑這就是爲什麼你的國家,它「重新顯示相同的列表」

一個簡單的方法來調試的是與你的收藏情況是使用Meteor Shell,在那裏你可以添加,刪除或修改項目同時觀察客戶端發生的情況。

+0

你是對的,我忘記了一旦這些文檔被插入,函數的那部分將永遠不會再被評估...... oops。感謝Shell提示,我可以看到有很多關於Meteor和MongoDB的知識,我敢肯定任何找到'引擎蓋下'的方法都會派上用場......再次感謝! – kwishnu

相關問題