0
このメテオコードは、ブラウザのmongoコレクションCarsCol
からのデータを表示できません。
何が間違っていますか?おかげMeteorからコレクションへのコンポーネントのエクスポート
// /imports/api/collections.js
export const CarsCol = new Mongo.Collection('carsCol');
// /imports/ui/myList.jsx
import React from 'react';
export const ListItems = ({listItems}) => { //<---- {listItems} undefined
if (listItems && listItems.length > 0) {
return (
<ol>
{listItems.map((item) => (
<li key={item._id}>{item.car}</li>
))}
</ol>
);
} else {
return (
<p>No cars yet!</p> //<------------ shows in browser
);
}
};
// /client/cars.js
import React from 'react';
import ReactDOM from 'react-dom';
import { composeWithTracker } from 'react-komposer';
import { ListItems } from '../imports/ui/myList.jsx';
import { CarsCol } from '../imports/api/collections.js';
const composer = (props, onData) => {
const sub = Meteor.subscribe('carsCol');
if (sub.ready()) {
const cars = CarsCol.find().fetch();
onData(null, {cars});
}
};
const Container = composeWithTracker(composer) (ListItems);
ReactDOM.render(<Container />, document.getElementById('react-root'));
コレクションからすべてのレコードを削除しましたが、ブラウザに何も表示されず更新されませんでした。この場合、なぜ反応性が働いていないのですか? –
それは良い質問です、私はこれまであなたが記述する方法で動作していないことを見ていない。私は、[tracker-component](https://github.com/studiointeract/tracker-component)を使うとコードを大幅に変更する必要がありますが、問題を解決できると思います。 –
反応のコンポジション反応がコンテナ内部で行われ、関数 'compose'の中でどのように反応するのか、mongoコレクションの変更に対応する方法を学びました。 ? [https://voice.kadira.io/using-meteor-data-and-react-with-meteor-1-3-13cb0935dedb#.bz29237uj] –