1
テーブルを反応(約100行)でレンダリングしましたが、行の効果が1つずつ表示されます。 Reactでこれを行う方法はありますか?以下は私のReactコードです(willMountプロシージャのderivePairs関数はテーブルのデータを出力します)。反応テーブルのアニメーション
var columns = [
{ key: 'pairNo', label: 'Zaporedna številka' },
{ key: 'homeTeam', label: 'Domača ekipa' },
{ key: 'awayTeam', label: 'Gostujoča ekipa' },
{ key: 'score', label: 'Rezultat' }
];
var Table = React.createClass({
getInitialState: function() {
return {data: this.props.data};
},
componentWillMount: function() {
derivePairs();
},
render: function() {
var headerComponents = this.generateHeaders(),
rowComponents = this.generateRows();
return (
<table>
<thead>{headerComponents}</thead>
<tbody>{rowComponents}</tbody>
</table>
);
},
generateHeaders: function() {
var cols = this.props.cols; // [{key, label}]
// generate our header (th) cell components
return cols.map(function(colData) {
return <th key={colData.key}>{colData.label}</th>;
});
},
generateRows: function() {
var cols = this.props.cols, // [{key, label}]
data = this.props.data;
var round=1;
var pairNo=1;
var oldRound=0;
var teamName=null;
return this.state.data.map(function(item, i) {
// handle the column data within each row
var htmlExcerpt = null;
var len = Object.keys(cols).length;
if (oldRound !== item.round) {
i=i+1;
htmlExcerpt = <tr key={'round'+item.round}><td colSpan={len}>Round: {item.round}</td></tr>;
oldRound = item.round;
}
var cells = cols.map(function(colData) {
console.log(colData);
// colData.key might be "firstName"
if (colData.key == "pairNo") {
return (<td> {pairNo} </td>);
} else {
if (colData.key == "homeTeam" || colData.key == "awayTeam") {
teamName = config.teams[item[colData.key]].name;
return (<td> {teamName} </td>);
} else {
return (<td> {item[colData.key]} </td>);
}
}
});
if (htmlExcerpt !== null) {
return [htmlExcerpt,<tr className=enter-data key={i}> {cells} </tr>];
} else {
return <tr className=enter-data key={i}> {cells} </tr>;
}
pairNo=pairNo+1;
});
}
});
ReactDOM.render(<Table cols={columns} data={config.pairs}/>, document.getElementById('roundPairs'));
ありがとうございました。
助けてくれてありがとうございましたが、それを行ってもありがとうございました。まだフェード効果なしで表示されています。テーブルがただちに表示されます。 http://bobr.si/react/index_new.html – Bostjan
@Bostjanで、 'ReactCSSTransitionGroup'コンポーネントで行をラップしていないようです。現在のコードが表示されているわけではなく、理解するのは難しいです。 pastebin.comにアップロードできますか? – 1ven
とても助けてくれてありがとう...私もpastebinにコードをアップロードしました:http://pastebin.com/dWnay05wあなたは私の最初のコメントに投稿したそのリンクのソースコードにも見ることができますが – Bostjan