私はこのトピックについて議論している多くの質問があることを知っているが、それらのすべてが私は空の配列を返してみました。私は試しました:メテオ - 最新のドキュメントを取得
- 新しい出版物を作成します。
- forループを使用して最後の項目を取得します(高速ではありません)
- クライアント側でdbを調べます。ここで
私の出版物である:私はそれにアクセスしようとしているのはここ
Meteor.publish('notes-newest', function() {
return Notes.find().sort({$natural: -1}).limit(10);
});
は次のとおりです。
import { Meteor } from "meteor/meteor";
import React from "react";
import { withRouter } from "react-router-dom";
import { Tracker } from "meteor/tracker";
import { Accounts } from "meteor/accounts-base";
import { Notes } from "../methods/methods";
import SubjectRoutes from "./subjectRoutes/subjectRoutes";
import RenderNotesBySubject from "./renderNotesBySubject";
import Menu from "./Menu.js";
class Home extends React.Component{
constructor(props){
super(props);
this.state = {
notes: []
};
}
componentDidMount() {
Meteor.subscribe('notes-newest')
this.tracker = Tracker.autorun(() => {
const notes = Notes.find().fetch()
if(notes == null || notes == undefined){
return;
}
this.setState({ notes })
})
}
renderNewNotes(){
let notes = this.state.notes;
let count = 10;
console.log(notes);
}
render(){
return (
<div>
<Menu />
<h1></h1>
{this.renderNewNotes()}
</div>
)
}
}
export default withRouter(Home);
新しいコード
import { Meteor } from "meteor/meteor";
import React from "react";
import { withRouter } from "react-router-dom";
import { Tracker } from "meteor/tracker";
import { Accounts } from "meteor/accounts-base";
import { createContainer } from "meteor/react-meteor-data"
import { Notes } from "../methods/methods";
import SubjectRoutes from "./subjectRoutes/subjectRoutes";
import RenderNotesBySubject from "./renderNotesBySubject";
import Menu from "./Menu.js";
class Home extends React.Component{
constructor(props){
super(props);
this.state = {
notes: []
};
}
componentDidMount() {
// Meteor.subscribe('notes-newest')
this.tracker = Tracker.autorun(() => {
const notes = this.props.list
if(notes == null || notes == undefined){
return;
}
this.setState({ notes })
})
}
renderNewNotes(){
let notes = this.state.notes;
let count = 10;
console.log(notes);
}
render(){
return (
<div>
<Menu />
<h1></h1>
{this.renderNewNotes()}
</div>
)
}
}
export default createContainer(({props})=>{
Meteor.subscribe("notes-newest", props);
return{
list: Notes.find().fetch(),
}
}, Home);
運.......私は新しいコードをアップロードし、私は本当に経験豊富では反応しないのですか流星のユーザーはそうすることができますあなたはそれをチェックし、私がこの権利をしているかどうか教えてください。 –
これは私の今のところです。コンソールには、「サブノートからの例外 - 最新ID 9GfWBt7xs5HRPNeoY TypeError:Notes.find(...)。sortは関数ではありません」というエラーがあります。それで、なぜconsole.log(this.props.list)のときに空の配列が返されるのですか?データコンテナの代わりに私の出版物に何か問題がありますか? –