メテオール1.4とリアクト私は、それぞれ6つのアイテムからなる2行のレンダリングコンポーネントのネストループを行いたいと思っています。私は結果をページ分割するカウンタをインクリメントすることができるようループスルー流星反応成分
Row 1
[unique_item] [unique_item] [unique_item] ...
Row 2
[unique_item] [unique_item] [unique_item] ...
にはどうすればcreateContainer
関数に状態を渡すのですか?ここで
コードです:
import React, { Component, PropTypes } from 'react';
import ReactDOM from 'react-dom';
import { createContainer } from 'meteor/react-meteor-data';
import { Items } from '../api/items.js';
import Item from './Item.jsx';
import '../../client/stylesheets/main.scss';
class App extends Component {
constructor(props) {
super(props);
this.state = {
skipCount : 0
};
}
renderItemRows(i) {
return (
<div className="container-fluid">
<div className="row">
{ this.renderItems(i) }
</div>
</div>
);
}
renderItems(i) {
// i here has the right value...how do I pass into createContainer?
return this.props.items.map((item) => (
<Item key={item._id} item={item} />
));
}
render() {
let rows = [];
for (let i=0;i<2;i++) {
rows.push(this.renderItemRows(i));
}
return (<div>{rows}</div>);
}
}
App.propTypes = {
items: PropTypes.array.isRequired,
skipCount: PropTypes.number,
};
export default createContainer(() => {
// Hardcoded to 50 just to make sure the data pagination works
const skipCount = 50;
Meteor.subscribe('items', skipCount);
return {
items: Items.find({}, { sort: { item : 1 }, limit : 6 }).fetch(),
};
}, App);
流星フォーラムでthis threadて読んだ後、それには、このような情報を渡す方法はありませんので、createContainer()
はステートレス関数として渡されます。
そのスレッドによると、私の唯一の2つのオプションがあります。私が試した
- が
Session.get()
を経由して公開する機能にパラメータを渡すラッパーコンポーネント(ItemRow1.jsx
とItemRow2.jsx
)
1番は動作しますが、データの2番目の行にページングするだけでは信じられないくらい繰り返しているようです...これを行うには良い方法はありませんか?私が正しくあなたが何をしようとして理解していれば、それを実現する最も簡単な方法は、createContainer
で行1および2のための項目の個別の配列を作成することです
達成しようとしていることを理解しているかどうかはわかりません。あなたの問題はあなたの 'i'変数や' skipCount'に関係していますか(あなたのコードでは両方に問題があるかもしれません)?可変量の行を動的にレンダリングしたいのですか、または一度に2つずつですか? – Waiski
私は常に6つの項目の2つの行をそれぞれレンダリングしたいと思います。 'skipCount'は結果を改ページするだけで、行1は1-6、行2は7-12です。 – OrdinaryHuman