javascript - 删除选择框reactJS中出现的编辑和删除按钮
问题描述
我是新手reactJS
。我有一个选择选项。
我想在选择选项中添加删除和编辑按钮。
这是我尝试过的代码,
<Select
style={{ width: 240 }}
placeholder="Choose Web Analytics Configuration"
dropdownRender={menu => (
<div>
{menu}
<Divider style={{ margin: '4px 0' }} />
<div
style={{ padding: '4px 8px', cursor: 'pointer' }}
onMouseDown={e => e.preventDefault()}
onClick={this.openModal.bind(this)}
>
<Icon type="plus" /> Add Database
</div>
</div>
)}
>
{dbConfigList.map(item => (
<Option key={item}>{item}
<Icon onClick={this.editFun.bind(this)} type="edit" style={{ fontSize: '20px', color: 'green' }} theme="outlined" />
<Icon onClick={this.deleteFun.bind(this)} type="delete" style={{ fontSize: '20px', color: '#CC160B' }} theme="outlined" />
</Option>
))}
</Select>
我已成功添加按钮。这里看起来像:
但是当用户选择该选项时,编辑和删除按钮会出现在选择框中。我只需要显示名称而不是按钮。
这里看起来像,
帮助我提供一些解决方案来修复它,在dropdown
每个选项的菜单中,我希望编辑和删除按钮出现在右上角。现在它出现在文本之后。我可以为此使用保证金。但每个名称大小都不同。前任。有些名称将是 6 个字符,有些名称将超过 6 个字符。帮我解决一些问题。
解决方案
检查下面的示例,您需要<Icon>
像我对“+ -”所做的那样防止您的
应该是这样的:
{
dbConfigList.map(item => (
<Option key={item}>
{item}
{selectedValue !== item // you need to add state
<Icon
onClick={this.editFun.bind(this)}
type="edit"
style={{ fontSize: "20px", color: "green" }}
theme="outlined"
/>
<Icon
onClick={this.deleteFun.bind(this)}
type="delete"
style={{ fontSize: "20px", color: "#CC160B" }}
theme="outlined"
/> : null}
</Option>
));
}
class App extends React.Component {
constructor() {
super();
this.state = {
optionsdata : [
{key:'101',value:'Lion'},
{key:'102',value:'Giraffe'},
{key:'103',value:'Zebra'},
{key:'104',value:'Hippo'},
{key:'105',value:'Penguin'}
],
selectedValue: null // store selected value
}
}
handleChange = (e) => {
console.log(e.target.value);
var value = this.state.optionsdata.filter(function(item) {
return item.key == e.target.value
})
this.setState({ selectedValue: value[0].value }); // set state
console.log(value[0].value);
}
render() {
const { selectedValue } = this.state;
return (
<select onChange={this.handleChange}>
{this.state.optionsdata.map(function(data, key) { return (
<option key={key} value={data.key}>{data.value} {selectedValue !== data.value ? '+ -' : null } </option> )
})}
</select>
)
}
}
ReactDOM.render(<App/>, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.1/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.0.1/react-dom.min.js"></script>
<div id="app"></div>
推荐阅读
- airflow - Apache Airflow (2.0.0b1) - 动态创建任务并在函数中访问 kwargs
- python - 如何使用 discord.py 检索以前的消息
- python-3.x - 超声波传感器 HC-SR04 和 RCWL-1601 的测量速度正在减慢
- python - 大家好,我在使用 pandasql 运行简单的 sql 查询时遇到了一些麻烦
- python - 如何在不弹出 cmd 的情况下使用 .bat 文件启动 .pyw 脚本?
- c - 无法提示用户输入
- amazon-web-services - Redis 集群最小节点 AWS Elasticache
- python-3.x - 如何在列表理解中定义一个实例并使用它
- excel - 如何在 Excel 中组合具有不同列名和列顺序的多个 CSV 文件?
- javascript - 是否有适用于折线图的 Google 可视化“动画开始”的解决方法?