工具:Reactjs 0.14.0 Vanilla Flux
我需要唯一标识符有两个原因:
因此,假设我有一个如下所示的消息列表:
[
{
id: 1241241234, // <-----The unique id is kept here
authorName: "Nick"
text: "Hi!"
},
...
]
现在我使用 a在所有者组件内部Array.prototype.map()
创建“拥有者”组件(MessageListItem
)MessageSection
function getMessageListItem(message) {
return (
<MessageListItem key={message.id} message={message} />
);
}
var MessageSection = React.createClass({
render: function() {
var messageListItems = this.state.messages.map(getMessageListItem);
<div>
{messageListItems }
</div>
}
});
但this.props.key
在不确定的MessageListItem
,即使我知道,当它被流传下来,其被定义的事实。
var ConvoListItem = React.createClass({
render: function() {
console.log(this.props.key); // Undefined
}
});
我猜 React 不允许key
用作props是有原因的。
问题:
如果我不能key
用作props,那么在包含状态的子元素的动态列表上处理键控和设置唯一标识符的二元性需求的正确方法是什么?