我对我的代码没有问题,我只是为了学习目的问这个问题,因为我已经学习了一周半了.我的问题是,我绑定了影响/改变我的listValue和listAdd状态的函数,那么我应该绑定那些不影响我的状态的函数,比如addList()和clearList(),还是应该只在涉及到状态时绑定?此外,如果你有任何优化的建议或我可以做的不同,使它更容易,我会很高兴听到这些.
function ListApp() {
return <List/>
}
class List extends React.Component{
constructor(props){
super(props);
this.state = {
listValue: '',
listAdd: ''
}
this.handleList = this.handleList.bind(this);
this.addValue = this.addValue.bind(this);
}
handleList(){
if(this.state.listValue !== ''){
this.setState({
listAdd: this.state.listValue
}, ()=>this.addList(this.state.listAdd))
}
document.querySelector(".textArea").value = '';
this.setState({
listValue: ''
})
}
addValue(event){
this.setState({
listValue: event.target.value
})
}
addList(value){
const node = document.createElement("li");
const textnode = document.createTextNode(value);
node.appendChild(textnode);
document.querySelector(".listBox").appendChild(node);
}
clearList(){
while (document.querySelector(".listBox").firstChild) {
document.querySelector(".listBox").firstChild.remove();
}
}
render(){
return(
<div className="box1">
<textarea placeholder="Type here" className="textArea" maxLength={68} onChange={this.addValue}></textarea>
<button className="add" onClick={this.handleList}>Add</button>
<button className="clear" onClick={this.clearList}>Clear</button>
<ul className="listBox"></ul>
</div>
);
}
}