下面是antd Tabs的DEMO提供
...
onEdit(target, action) {this[action](target)},
...
render() {
return (
<Tabs
onChange={this.onChange}
activeKey={this.state.activeKey}
type="editable-card"
onEdit={this.onEdit}
>
{this.state.panes.map(pane => <TabPane tab={pane.title} key={pane.key}>{pane.content}</TabPane>)}
</Tabs>
);
}
我的项目中使用的是纯函数的写法,在遇到add 和 remove的时候遇到了这个问题,不知道如何将add和remove写入,而onEdit的this我也传入不了。
补充:
可能描述的不是很清楚,我期待的是组件是以下方式添加add 和 remove:
<Tabs
onChange={this.onChange}
activeKey={this.state.activeKey}
type="editable-card"
onAdd={this.onAdd}
onRemove={this.onRemove}
>
</Tabs>
在项目中 我并没有使用react的生命周期,而是通过传递参数的形式用纯函数来构造component,以下是我该模块部分代码:
const TabsModel = ({
activeKey, onChange, onAdd, onRemove, paneList, onEdit
}) => {
return (
<Tabs
onChange={onChange}
activeKey={activeKey+''}
type="editable-card"
onEdit={onEdit}
>
{
paneList.map(item => <TabPane tab={item.name} key={item.id}>{item.content}</TabPane>)
}
</Tabs>
);
}
然而onEdit内部的 this 是我无法提供的,我该如何将DEMO写法转化成我的代码风格呢?
为了精简 API 数量。