什麼是'流星' - 通過給定的ID獲取文檔標題的方式?MeteorJS:如何通過給定的ID數組通過服務器方法獲得標題數據
集(文章)
{
'_id' : 'Dn59y87PGhkJXpaiZ',
'title' : 'Sample Article',
'slug' : 'sample-article'
}
客戶
render() {
const data = [
{ _id: 'Dn59y87PGhkJXpaiZ' },
{ _id: 'kJXpaiZDn59y87PGh' }
{ _id: 'y87PGhkJXpaiZDn59' }
]
return (
<List>
{
data.map(r => {
return <List.Item>r._id</List.Item>
})
}
)
}
有了這個,我會得到這樣的輸出:
<List>
<List.Item>Dn59y87PGhkJXpaiZ</List.Item>
<List.Item>kJXpaiZDn59y87PGh</List.Item>
<List.Item>y87PGhkJXpaiZDn59</List.Item>
</List>
現在我要顯示的標題,而不是的id。所以通常我會做
data.map(r => {
const title = Articles.findOne({ _id: r._id }).title
return <List.Item>title</List.Item>
})
但問題是,data
是一個動態的數據集,我不能/不想公佈完整的文章集合。目前沒有訂閱,所以我沒有得到任何結果的標題。 所以我認爲我必須做一個服務器端調用。
Meteor.call('getTitle', r._id, function(err, res) {
console.log(res)
})
但是然後我會在回調函數中得到結果。那麼我如何將這些列入清單?另外我想避免多個方法調用。我認爲最好發送data
並獲得服務器端的所有標題,然後構建列表。
我使用[Sessions](https://docs.meteor.com/api/session.html)來處理該問題。 – ickyrr