前端实现的效果是 点击右侧列表在左侧TextArea内插入对应文案
使用的组件是antd的TextArea组件
可以从input中结构
像这样
import { Input } from "antd"
const { TextArea } = Input;
然后在TextArea上绑定onchange事件 接受一个事件对象event
event上有下面两个属性
对应的是光标现在的位置 如果没有选中文案 两个属性值是一样的 如果选中文案了 那两个属性就一个是选中文案开头的位置,和结束的位置
currentTarget.selectionEnd
currentTarget.selectionStart
然后可以选择使用slice 是截取
比如说 let str = string.slice(0,event.currentTarget.selectionStart) + '要插入的文案' + string.slice(event.currentTarget.selectionStart)
这样就实现了插入效果
也可以用正则replace方法 看你喜欢哪种 ,建议不用正则 好看但是不稳妥~