Javascript 如何获得组件';是否从componentDidMount()内部获取属性值?
我以以下方式呈现一些React组件:Javascript 如何获得组件';是否从componentDidMount()内部获取属性值?,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,我以以下方式呈现一些React组件: renderElements(elements) { return elements.map( (element) => (<Element key={element._id} element={element} />) ); } render() { return( <div className="parent"> {this.renderEn
renderElements(elements) {
return elements.map(
(element) => (<Element key={element._id} element={element} />)
);
}
render() {
return(
<div className="parent">
{this.renderEntries()}
</div>
);
}
在listElements迭代中,我希望通过键访问分配给组件的_id值。是否可以不让用户看到_id?我知道我可以将其作为自定义属性传递,并使用.attr(“u id”)检索它,但我不希望元素.u id对用户可见。如有任何见解,将不胜感激
编辑:
如果有人想知道,_id是一个数据库条目标识符,如果可能的话,我宁愿对用户隐藏它。显示此id可能不是安全问题,但如果有办法避免,那么我宁愿使用它
谢谢。您不需要jquery和react,没有必要。您应该使用字符串或函数回调来
ref
——而且键
属性是特殊的,它对儿童不可用,如果您需要,您可以提供另一个key2
属性或其他属性。我没有将此作为解决方案发布,因为我不确定是否有办法访问键
,我只记得当我需要它时,我无法获得它,不得不使用第二个道具。@Noitidart你是对的。但在本例中,我使用了一些jquery ui功能,没有看到任何其他选项。为什么需要从组件获取id?您已经在数组元素中有了ID
也许您的用户交互不应该更改DOM,而是应该更新您的react状态,这样您就可以始终在JavaScript中有一个ID列表,而不应该在DOM中。顺便说一句,您在jQuery UI上实际做了什么?我几乎可以肯定你能摆脱它?
componentDidMount(){
$('.parent').each(function(){
var listElements = $(this).children();
listElements.each(function(){
console.log("Here I need the _id assigned to the component's key attribute...)
});
});
}