1

我正在使用 Draftjs 和 Draftjs 提及插件。当有提及名称的建议时,它会呈现正常,但如果建议不存在并且我使用 @ 后跟随机文本,它会崩溃。谁能帮我解决这个问题。将不胜感激。谢谢你。

this.mentionMembersPlugin = createMentionPlugin({
      entityMutability: "IMMUTABLE",
      positionSuggestions,
      mentionTrigger: "@",
      mentionPrefix: "",
      supportWhitespace: true
    });


 onChangeEditor = editorState => {
        this.setState({ emptyField: false });
        this.setState({ editorState });
      };


 onSearchMemberChange = ({ value }) => {
    this.setState({
      suggestionMembers: defaultSuggestionsFilter(
        value,
        this.state.mentionMembers
      )
    });
  };


handleKeyCommand(command: string): DraftHandleValue {
    if (command === "save_teamsync") {
      // Perform a request to save your contents, set
      // a new `editorState`, etc.
      this.add_taskComment();
      return "handled";
    }
    return "not-handled";
  }

 add_taskComment() {
    let newData = convertToRaw(this.state.editorState.getCurrentContent());
    let checkText = newData.blocks[0].text;
    this.setState({ clicked: true });
    var r = JSON.stringify(
      convertToRaw(this.state.editorState.getCurrentContent())
    );
    //e.preventDefault();
    if (checkText.trim().length !== 0) {
      if (this.isValid(r)) {
        var data = {};
        data.text = r;
        data.mentionMembers = r.entityMap;

        this.props
          .addTaskComment(this.props.task._id, this.showTags, data)
          .then(res => {
            if (res.data.success) {
              const editorState = EditorState.push(
                this.state.editorState,
                ContentState.createFromText("")
              );
              this.setState({
                editorState: EditorState.moveFocusToEnd(editorState)
              });
              //this.setState({ editorState: EditorState.moveFocusToStart(EditorState.createEmpty()), clicked:false });
              this.lastComment.scrollIntoView({ behavior: "smooth" });
            }
          });
      }
    } else {
      this.setState({ isCommentEmpty: true });
    }
  }


       <Editor
         blockStyleFn={"myBlockStyleFn"}
         editorState={this.state.editorState}
         onChange={this.onChangeEditor}
         plugins={this.plugins}
         handleKeyCommand={this.handleKeyCommand}
         keyBindingFn={this.myKeyBindingFn}
         placeholder="Write a comment"
         ref={element => {
            this.editor = element;
             }}
         />

       <MentionMembersSuggestions
           onSearchChange={this.onSearchMemberChange}
           suggestions={this.state.suggestionMembers}
       />

这是用于呈现评论的所有代码。

这是我收到的错误“ Unhandled Rejection (TypeError): this.props.getEditorState is not a function ”。

4

0 回答 0