我正在学习ReactJS并在选中复选框时尝试console.log我的id。我已经尝试了多种方法来做到这一点,我得到一个错误,未定义或null。渲染时,span标记有自己的id。如何从函数中引用它?
import React from "react";
import * as ToDoAction from "../actions/ToDoAction";
export default class ToDoLi extends React.Component{
constructor(){
super();
}
deleteToDo(){
let id = document.getElementById('id');
console.log('I am here at ' + id);
}
render(){
return (
<div>
<li onChange={this.deleteToDo.bind(this)}><input type="checkbox"/><span id={this.props.id} className="m-l-10">{this.props.text}</span></li>
</div>
)
}
}
答案 0 :(得分:1)
为什么找不到该元素:很可能它的id
属性值没有按字面设置为id
。确认您需要提供如何呈现此组件。
但是这种做法非常沮丧,不应该直接混淆DOM。
你应该做些什么:
如果您真的需要某些理由来获取dom元素 - 了解如何使用ref
:https://facebook.github.io/react/docs/refs-and-the-dom.html
或者,您可能希望浏览传递给处理程序的事件。为此,您将处理程序声明为deleteToDo(e)
并检查e
否则 - this.props
和所有其他反应属性都可用,您可以使用其中任何一种。