把id为all的元素传送给CheckAll发送不过去,是什么原因。

#1
import React from 'react';
import StaffItem from './StaffItem.js';
export default class StaffItemPanel extends React.Component{	

 	 click() {
		if (CheckAll.checked == true)
			for (var i = 0; i < CheckBox.length; i++) {
			CheckBox[i].checked = false;
			};
		if (CheckAll.checked == false)
			for (var i = 0; i < CheckBox.length; i++) {
			CheckBox[i].checked = true;
			};
		for (var i = 0; i < CheckBox.length; i++) {
			if (CheckBox[i].checked == true) {
			CheckBox[i].checked = false;
			}
		else {
			CheckBox[i].checked = true;
			}	
		};

	}
	render(){
		let items = [];
		var CheckAll = document.getElementById('All');
		var CheckBox = document.getElementsByName('box');
		
		if(this.props.items.length == 0) {
		    items.push(<tr><th colSpan="5" className="tempEmpty">暂无用户</th></tr>);
		}else {
		    this.props.items.forEach(item => {
			    items.push(<StaffItem key={item.key} item={item} removeStaffItem={this.props.removeStaffItem} detailStaffItem={this.props.detailStaffItem}/>);
		    });
		}
		
		return (
		  <table className='itemPanel'>
		    <thead>
				<th> <input type="checkbox" id='all' onClick={this.click.bind(this)}/> </th>
			    <th className='itemTd'>姓名</th>
				<th className='itemTd'>年龄</th>
				<th className='itemTd'>身份</th>
				<th className='itemTd'>性别</th>
				<th className='itemTd'>操作</th>
			</thead>
		    <tbody>{items}</tbody>
		  </table>
		);
	}
}
#2

兄弟,你看些官方文档表单一节(多个输入的解决方法)(https://doc.react-china.org/docs/forms.html),可不是你这么写的喔

<input type="checkbox" id='all' onClick={this.click.bind(this)}/> 

这句就不对啦

<input type="checkbox" checked={this.state.value}   id='all' onChange={this.click.bind(this)}/>

触发事件后this.state.value设置为true就可以选中了。

#3

如果要实现全选和反选,那应该怎么修改

#4

false就是取消选中。
全选就是把同一组里多个checkbox的属性checked值设置为true啊。。