我不知道为什么我要从受控输入警告切换到非受控输入警告。 this.state.lineItemName
在我的构造函数中定义,这似乎是我读过的其他SO问题的主要错误。为什么我从受控输入切换到不受控输入
这与React的todoMVC实现非常相似。
class LineItemForm extends React.Component {
constructor(props) {
super(props);
this.state = {
newLineItem: ""
}
}
render() {
return(
<tr>
<td>
<input type="text"
onChange={this.handleChange.bind(this)}
onKeyDown={this.handleKeyDown.bind(this)}
value={this.state.newLineItem}
placeholder="Search for an item..."
autoFocus={true}
/>
</td>
</tr>
);
}
handleChange(e) {
this.setState({newLineItem: event.target.value});
}
handleKeyDown(e) {
if (e.keyCode === this.props.ENTER_KEY_CODE || e.keyCode === this.props.TAB_KEY_CODE) {
e.preventDefault();
let name = e.target.value.trim();
if (name) {
let lineItem = {
name: name
};
this.props.createLineItem(lineItem, this.props.sectionId)
this.setState({newLineItem: ""})
}
} else {
return;
}
}
}
LineItemForm.defaultProps = {
ENTER_KEY_CODE: 13,
TAB_KEY_CODE: 9
}
啊是e。与事件哎呀。谢谢 – brownie3003