MeteorとReactを使用しているときに、コンテナからコンポーネントにデータを渡すことが完全に止まっています。私はMeteor Reactチュートリアルのコードをコピーして少しカスタマイズしたと思っていましたが、何とかしていません。私がしたいのは、データベース(QuestionModel)からデータを取得し、単にビューで出力することです。ブラウザのエラーメッセージによると、renderQuestions()のthis.props.questionsは定義されていません...しかし、データをコンポーネントに明示的に渡しました。 誰か助けてくれますか?ありがとうございました。Meteor Reactを使用してコンテナからコンポーネントにデータを渡す
import React, { Component, PropTypes } from 'react';
import { createContainer } from 'meteor/react-meteor-data';
import { Questions as QuestionsModel } from '../../api/questions.js';
import { QuestionList } from '../QuestionList.jsx';
class Questions extends Component{
renderQuestions(){
let filteredQuestions = this.props.questions;
//This doesn't work at all...
console.log(this.props.questions);
return filteredQuestions.map((question) => (
<QuestionList key={question._id} question={question} />
));
}
render(){
return (
<div className="questionlist">
<ul>{this.renderQuestions()}</ul>
</div>
);
}
}
Questions.propTypes = {
questions: PropTypes.array.isRequired,
};
export default QuestionsContainer = createContainer(() => {
//This console.log outputs the data correctly.
console.log(QuestionsModel.find({}).fetch());
const questions = QuestionsModel.find({}).fetch();
return {
questions,
};
}, Questions);
Retunが有効なDOM要素でなければなりません:
は、ここに私のコードです。ここでは、有効なDOM要素ではない 'questions'を返しています。 – Ved
あなたの返信ありがとうございます。公式チュートリアルによると、コンテナは配列のような変数を返すことができます。これは単に目的のコンポーネントにデータを渡すだけではなく、何かをレンダリングすることではありません。 https://www.meteor.com/tutorials/react/collections 奇妙なことに、コンポーネントからデータにアクセスできません。 –