react-komposer パッケージを使用して Meteor でアプリを構築しています。それは非常に単純です:検索フォームと結果のリストを含む最上位のコンポーネント ( App ) があります。リストは、komposer コンテナー ( AppContainer )によって提供される props を介してエントリを取得します。リストに表示される結果を絞り込むために検索を実装しようとするまでは、完全にうまく機能します。
これは私が始めたコードです ( AppContainer .jsx):
import { Meteor } from 'meteor/meteor';
import { composeWithTracker } from 'react-komposer';
import React, { Component } from 'react';
import Entries from '../api/entries.js';
import App from '../ui/App.jsx';
function composer(props, onData) {
if (Meteor.subscribe('entries').ready()) {
const entries = Entries.find({}).fetch();
onData(null, {entries});
};
};
export default composeWithTracker(composer)(App);
アプリは、エントリのリスト全体を単純にレンダリングします。私が達成したいのは、 AppEntries.find({}).fetch();
コンポーネントからのデータ(テキスト入力などでキャプチャされたもの)でクエリパラメーターを渡すことです。つまり、特定のエントリを検索し、最終的に対応する結果を再レンダリングするために、 App (子) コンポーネントからAppContainerにパラメータをフィードするにはどうすればよいでしょうか?
さらに明確にするために、App.jsx のコードを次に示します。
import React, { Component } from 'react';
export default class App extends Component {
render() {
return (
<div>
<form>
<input type="text" placeholder="Search" />
</form>
<ul>
{this.props.entries.map((entry) => (
<li key={entry._id}>{entry.name}</li>
))}
</ul>
</div>
);
}
}
前もって感謝します!