我正在尝试制作this的React版本。React输入元素在更新组件时未更新
你可以看到我到目前为止对this Codepen。
这里的问题是,当您键入文本字段(在“疑似播放器”列下),然后单击相邻名称(位于“角色”列下)以删除该行时,文本会在输入内持续存在,然后与另一个名称相邻。
预期的行为是,您要单击名称来删除该行,并且元素(名称和文本输入)都会消失。
表中的所有项目均以RoleList
类的状态存储在名为checklist
的数组中。
为表中的每个列表项的组件是这样的:
class RoleCheckpoint extends React.Component {
constructor() {
super();
this.state = {
text: ""
};
}
deleteThis() {
this.props.removeRole(this.props.role.id);
}
onChange(e) {
this.setState({
text: e.target.value
});
}
render() {
console.log(this.props);
return (
<tr>
<td className="vertAlign remove noselect" onClick={this.deleteThis.bind(this)}>
{this.props.role.el}
</td>
<td>
<input type="text" className="form-control" spellCheck="false" onChange={this.onChange.bind(this)} value={this.state.text} />
</td>
</tr>
);
}
}
当你的名字点击调用组件deleteThis
功能,依次调用的RoleList
removeRole
功能(即穿过列表项的数组,并从组件状态中删除具有匹配ID的那个),它将作为道具传递给RoleCheckpoint
。
我在deleteThis
功能使用this.forceUpdate()
试过了,你可以看到我试着结合输入字段的value
到组件的状态(称为text
),但仍输入不更新移除组件时来自DOM。
任何帮助表示赞赏,如果你需要更多的澄清,我会很乐意提供。