javascript - 当我使用 React JS 按下编辑按钮时,是否可以将响应数据设置为状态?
问题描述
我目前是 React js 的新开发者。当我单击编辑按钮时,我有关于将结果传递给每个文本框的问题。我目前使用 Bootstrap 表 V1 http://allenfang.github.io/react-bootstrap-table/。
当我单击按钮时,是否可以将响应数据传递给每个输入文本框。?
我将与你们分享我今天已经完成的示例工作。
我的功能:
function EditUser(row,cell) {
axios.get('/api/geteditUser/'+cell).then(response => {
console.log(response);
}).catch(error => console.log(error));
}
function action_format(cell,row) {
return <div><button onClick={() => EditUser(row,cell)} className="btn btn-primary" style={{fontSize:14}} data-toggle="modal" data-target="#myModal"><i className="far fa-edit" style={{fontSize:14}}></i></button> <button style={{fontSize:14}} className="btn btn-danger" data-toggle="modal" data-target="#myModal"><i className="fas fa-trash-alt" style={{fontSize:14}}></i></button></div>
}
引导表:
<BootstrapTable data={this.state.list_user} pagination={ true } search options={ this.options } striped hover version='4'>
<TableHeaderColumn isKey dataField='id'>Id</TableHeaderColumn>
<TableHeaderColumn dataField='name'>Name</TableHeaderColumn>
<TableHeaderColumn dataField='email'>Email</TableHeaderColumn>
<TableHeaderColumn dataField='role' dataFormat={format}>Role</TableHeaderColumn>
<TableHeaderColumn dataField='status'>Status</TableHeaderColumn>
<TableHeaderColumn dataField='id' dataFormat={action_format}>Action</TableHeaderColumn>
</BootstrapTable>
我的模态:
<form onSubmit={this.UpdateDriverStatus}>
<div className="container-fluid">
<div className="row">
<div className="col-md-6">
<label>Name</label>
<input type="text" value={this.props.setUserid} className="form-control"></input>
</div>
<div className="col-md-6">
<label>Email</label>
<input type="text" className="form-control"></input>
</div>
</div>
<br/>
<div className="row">
<div className="col-md-6">
<label>Password</label>
<input type="password" className="form-control"></input>
</div>
<div className="col-md-6">
<label>Status</label>
<input type="text" className="form-control"></input>
</div>
</div>
</div>
<br/>
<center><button type="submit" className="btn btn-primary col-md-6">Update</button></center>
解决方案
好的,因此仅传递响应,如果单击按钮,则必须将其保存在如下状态中:
function action_format(cell,row) {
return <div><button onClick={() => {EditUser(row,cell)}; this.setState({passResponse: true}} ...}
这将保存是否应将响应数据推送到输入元素中。现在在你的渲染函数中实际推送数据:
<input type="text" value={this.state.passResponse ? this.state.response: this.props.setUserid} className="form-control"></input>
如果您完成了编辑,您应该将 passResponse 切换为 false。希望这可以帮助。快乐编码。
推荐阅读
- java - 在 Javax xml 转换器中禁用缓存
- php - 如何在流明中排队饼干?
- javascript - 在节点红色消息中,双引号被转换为 "
- php - 当文件夹/数据库中的图像时如何使用php显示图像
- android - dexmaker gradle 同步失败,符号未解析
- python-3.x - 为什么这个 Python3 聊天在几条消息后失败?
- protocol-buffers - Protobuf:将带有公共数据的输入流式传输到所有元素
- reactjs - htaccess:反应站点上的 301 重定向导致重复模式
- javascript - 在特定时间后自动保存表单数据
- php - 通过Android Studio将记录插入MYSQL数据库时更新多列