2
我有一個表有一些生成的行(來自一個props值),然後是一個靜態行在底部,當我做一個更新該props值添加另一個值,我的靜態最後一行不再是瀏覽器中的最後一行,它像DOM不同,認爲我的靜態行來自集合(我試圖將一個key={"foo"}
添加到靜態行,但沒有幫幫我)。使用react.js更新表導致錯誤的行順序
下面是一個發生什麼的例子,當你點擊添加結果表是1,2,3,添加4,而不是1,2,3,4,添加。
<!DOCTYPE html>
<html lang="en">
<head>
\t <script src="http://fb.me/react-with-addons-0.12.2.js"></script>
\t <script src="http://fb.me/JSXTransformer-0.12.2.js"></script>
</head>
<body>
<div id="content">
</div>
<script type="text/jsx">
var Table = React.createClass({
render: function() {
var r = this.props.values.map(function(v) {
return (<tr key={v}><td>{v}</td></tr>);
});
return (
<table>
{r}
<tr><td>Last Row</td></tr>
</table>
);
}
});
var TableContainer = React.createClass({
getInitialState: function() {
return { values: ["1","2","3"]}
},
addValue: function() {
this.setState({values: ["1","2","3","4"]});
},
render: function() {
return (
<div>
<Table values={this.state.values} />
<button onClick={this.addValue}>add</button>
</div>
);
}
});
\t React.render(
<TableContainer />,
document.getElementById("content")
);
</script>
</div>
</body>
</html>