【发布时间】:2018-08-12 20:24:02
【问题描述】:
我有一个带有Edit 按钮的联系人列表。单击它时,我想让<div> 出现输入。目前,当单击该按钮时,此<div> 将针对我的联系人列表中的所有元素显示。
这是代码。我没有在这里放从 API 等获取联系人的代码。
```
class App extends Component {
state = {
contacts: [],
firstName: '',
lastName: '',
phoneNumber: '',
email: '',
editVisible: true
};
showEditDiv = (id) => {
this.setState({
editVisible: !this.state.editVisible
})
};
render() {
const visibility = this.state.editVisible ? 'unvisible' : 'visible';
return (
<ul>
{this.state.contacts.map(contact => {
return (
<div>
<li key={contact.id}>
<p>{contact.firstName} {contact.lastName}</p>
<p>{contact.phoneNumber}</p>
<p>{contact.email}</p>
<button onClick={() => this.removeContact(contact.id)}>Remove</button>
<button onClick={() => this.showEditDiv(contact.id)}>Edit</button>
<div key={contact.id} className={`edit-form ${visibility}`}>
<p>This is edit form</p>
</div>
</li>
</div>
)
})}
</ul>
</div>
);
}
}
export default App;
.edit-form { height: 100px; background: #a7a7a7; } .unvisible { display: none; } .visible { display: block; }
【问题讨论】:
-
您的渲染方法末尾似乎有一个额外的关闭
</div>标记 - 这可能会导致您出现布局问题
标签: javascript reactjs forms onclick