在我的 React 应用程序(版本 15.4.2)中,我正在使用 JavaScript 更新文本输入字段的值 - 但是,我有一个onChange
与输入字段关联的事件侦听器,并且更改输入字段的值不会触发处理程序(当然,在输入字段中输入好的老式输入确实如此),尽管该字段的内容已正确更新。
constructor(props) {
super(props);
this.onChange = this.onChange.bind(this);
}
onChange(event){
let attribute = event.target.name;
let updatedGroup = this.state.group;
updatedGroup[attribute] = event.target.value;
this.setState({group: updatedGroup});
}
addMember(memberId) {
let inputField = document.getElementById("members");
let inputValues = inputField.value.split(",");
inputField.value = [...inputValues, memberId];
}
render(){
<input type="text" id="members" name="members" value={this.state.group.members} onChange={this.onChange} />
}
因此,当addMember()
被调用时(通过单击子组件中的按钮),输入字段本身的内容会正确更新,但不会调用 onChange 从而不会更新状态,等等......
有没有办法以编程方式设置输入字段的值并触发onChange
?