这是myrender中的JSX的一部分
method:。
<td>。{
this.state[`edit$this.props.item启用`]?(<input type=“text”/>):(
<跨度
classname=“编辑”
onclick=()=>this.edit(this.props.item)>编辑</span>
)
}</td>
问题是,当我单击一个editbutton时,会出现input>,但当我单击另一个editbutton时,上一个input>不会消失。
当用户单击Edit
按钮,一个<input>
应该出现在它的位置上。
如果用户单击另一个编辑
按钮,此按钮也将替换为<输入>
和上一个<输入>
应该消失并显示编辑
再次按下按钮。
简而言之,一次只能有一个字段处于编辑模式。
这是我的首字母state
:
state = {
editnameEnable: false,
editemailEnable: false,
editaddressEnable: false,
edittelephone_noEnable: false,
}
这是我的edit()
方法:
edit = value => {
var address_element = ['name','address','email','telephone_no'];
address_element = address_element.filter(element => element !== value);
address_element.map( val => this.setState({[`edit${val}Enable`]: false}));
this.setState({[`edit${value}Enable`]: true}, ()=>{
console.log(this.state);
});
}
这是我的JSX的一部分render
方法:
<td>{
this.state[`edit${this.props.item}Enable`] ? ( <input type="text"/> ) : (
<span
className="edit"
onClick={ () => this.edit(this.props.item) }>Edit</span>
)
}</td>
问题是当我点击编辑
按钮,按钮<输入>
出现,但当我单击另一个编辑
按钮,上一个<输入>
不会消失。