Gre*_*gle 16 reactjs react-jsx
我有一个多维数组:一个results
包含18个数组的数组row
,每个数组包含6个数字.
我想把它渲染成一张桌子.逻辑是
results.each as (row)
<tr>
row.each as (number)
<td>number</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚你是如何用JSX写的.
const Resultset = props => (
{props.rows.map(rows => {
<tr>
{rows.map(number => <td>{number}</td>)}
</tr>
})}
);
Run Code Online (Sandbox Code Playgroud)
但那不对.这是什么程序,如何嵌套地图调用和插值?
man*_*mat 12
一种方法
var arr = [ [ 2, 3, 4, 5, 6, 7 ],
[ 8, 9, 10, 11, 12, 13 ],
[ 14, 15, 16, 17, 18, 19 ],
[ 20, 21, 22, 23, 24, 25 ],
[ 26, 27, 28, 29, 30, 31 ],
[ 32, 33, 34, 35, 36, 37 ],
[ 38, 39, 40, 41, 42, 43 ],
[ 44, 45, 46, 47, 48, 49 ],
[ 50, 51, 52, 53, 54, 55 ],
[ 56, 57, 58, 59, 60, 61 ],
[ 62, 63, 64, 65, 66, 67 ],
[ 68, 69, 70, 71, 72, 73 ],
[ 74, 75, 76, 77, 78, 79 ],
[ 80, 81, 82, 83, 84, 85 ],
[ 86, 87, 88, 89, 90, 91 ],
[ 92, 93, 94, 95, 96, 97 ],
[ 98, 99, 100, 101, 102, 103 ],
[ 104, 105, 106, 107, 108, 109 ] ];
var Hello = React.createClass({
tablerows: function() {
return this.props.arr.map(rows => {
var row = rows.map(cell => <td>{cell}</td>);
return <tr>{row}</tr>;
});
},
render: function() {
return <table>{this.tablerows()}</table>;
}
});
ReactDOM.render(
<Hello arr={arr} />,
document.getElementById('container')
);
Run Code Online (Sandbox Code Playgroud)
在行动:https://jsfiddle.net/69z2wepo/30476/
我建议将组件分离为Resultset
,NumberComponent
并尝试与箭头函数保持一致。
// Explicit return
const NumberComponent = props => {
return (
<td>{ props.number }</td>
)
}
const Resultset = props => {
return (
<tr>
{
props.rows.map( number => <NumberComponent number={number} />)
}
</tr>
)
}
// Implicit return
const NumberComponent = props => (<td>{ props.number }</td>);
const Resultset = props => (
<tr>
{
props.rows.map( number => <NumberComponent number={number} />)
}
</tr>
);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14140 次 |
最近记录: |