我对编码还比较陌生,并且遇到了Quilljs的问题,我不知道如何解决。
用例:我想创建一个文本编辑器,使用户可以书写笔记,然后可以返回并为文本添加注释。从某种意义上说,与Google文档类似,人们可以根据需要添加评论和删除评论。在我的案例中,注释突出显示了文本的某些部分,并由此产生了见解。一切都按设计工作。我正在围绕突出显示的文本创建跨度,并为每个见解添加一个ID,以便用户以后认为他们实际上不是来自文本的见解时可以将其删除。
问题:在将文本重新加载到笔芯值中时,我注意到第一次初始加载具有我所有ID的正确信息,但是笔芯运行了一个onChange事件,该事件会更新状态并从文本中剥离ID
问题:如何防止Quilljs从文本中删除范围ID?我查看了文档和旧问题,但认为它们不适用于我的问题。
技术:我正在使用React-Quill Fwiw
编辑:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ChildOne>()
.HasOne(p => p.ParentOne)
.WithMany(c => c.ChildOnes)
.HasForeignKey(fk => ((IChild<ParentOne>)fk).ForeignKey);
modelBuilder.Entity<ChildOne>()
.HasOne(p => p.ParentTwo)
.WithMany(c => c.ChildOnes)
.HasForeignKey(fk => ((IChild<ParentTwo>)fk).ForeignKey);
}
有人要求输入代码。这是我遇到问题的代码的精要部分。当我在import React, { Component } from 'react'
import { connect } from 'react-redux'
import { bindActionCreators, subscribe } from 'redux'
import ReactQuill, {Quill, Mixin, Toolbar } from 'react-quill';
import * as actionCreators from './quillTestActions'
class QuillTestContainer extends Component {
constructor(props) {
super(props)
this.handleChange = this.handleChange.bind(this)
this.state = {
query: '',
text: '',
};
}
componentDidMount() {
this.setState({
text: this.props.Notes.selectedNote.props.text
})
}
handleChange(value){
this.setState({text: value})
}
_modules(){
return {
modules: {
toolbar: [
[{ 'header': [1,2,3,4,false]}],
['bold', 'italic', 'underline', 'strike', 'blockquote', 'code-block'],
[{'color': []}, {'background': []}],
[{'list': 'ordered'}, {'list': 'bullet'}, {'indent': '-1'}, {'indent': '+1'}],
['link', 'image'],
['clean']
],
}
}
}
render() {
return (
<ReactQuill
value = {this.state.text}
modules = {this._modules().modules}
onChange = {this.handleChange}
/>
)
}
}
function mapStateToProps (state) {
return {
Notes: state.Notes,
}
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(actionCreators, dispatch)
};
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(QuillTestContainer)
或constructor
中调出我的值时,一切看起来都不错,但是在componentDidMount
之后,componentDidMount
启动了,这从我的span类中剥离了id。例如,我可能有类似onChange
这样的东西,其ID被剥夺了。
答案 0 :(得分:0)
作为优化羽毛笔的一部分,可以删除span标签。您是否尝试过在代码中添加跨度印迹(扩展BlockEmbed)?添加它可以让您控制要创建的节点(在Spanblot的create函数内部)。请注意,您需要将“跨度”列入白名单,以便在编辑器中呈现此节点。