Сбой при отображении «@ со случайным текстом» в draftjs - PullRequest
1 голос
/ 01 июля 2019

Я использую плагин упоминаний 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}
       />

Это весь код, который используется для визуализации комментариев.

Это ошибка, которую я получаю " Необработанный отказ (TypeError): this.props.getEditorState не является функцией ".

...