我有一个具有id
属性的组件,我想获取id
的值。这是我的工作。
constructor(props) {
super(props);
this.state = {
data: []
}
populate() {
for (let i = 0; i < 5; i++) {
data.push( < ChildComponent id = {
i
}
/>)
}
}
getValue() {
let tmp = data[0]
alert(tmp.id)
}
render() {
{
this.populate
}
return (
<
Button onClick = {
this.getValue
} > alert ID < /Button>
)
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
populate()
将五个子组件插入数据。
getValue()
是我要提醒组件ID的地方。
undefined
正在收到警报
答案 0 :(得分:1)
使用props.id
。因为id
不是组件tmp
本身的属性。其存在于props
中,因为id
在此处prop
data.push(<ChildComponent id={i}/>)
的形式传递
getValue(){
let tmp = data[0]
alert(tmp.props.id)
}
答案 1 :(得分:0)
像这样尝试:
constructor(props){
super(props);
}
getValue(){
alert(this.child_0.props.id)
}
render(){
return(
<>
{(new Array[5]).map((item, idx) => <ChildComponent ref={e => this['child_' + idx]} key={idx} id={idx}/>)}
<Button onClick={this.getValue}>alert ID</Button>
</>
)
}
}