我的ID一直返回null

时间:2016-11-08 20:22:58

标签: reactjs

我正在学习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>
            )
    }
}

1 个答案:

答案 0 :(得分:1)

为什么找不到该元素:很可能它的id属性值没有按字面设置为id。确认您需要提供如何呈现此组件。

但是这种做法非常沮丧,不应该直接混淆DOM。

你应该做些什么:

  1. 如果您真的需要某些理由来获取dom元素 - 了解如何使用refhttps://facebook.github.io/react/docs/refs-and-the-dom.html

  2. 或者,您可能希望浏览传递给处理程序的事件。为此,您将处理程序声明为deleteToDo(e)并检查e

  3. 否则 - this.props和所有其他反应属性都可用,您可以使用其中任何一种。