Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS:在codemirror编辑器顶部显示另一个UI元素_Javascript_Reactjs_Codemirror_Tippyjs_React Codemirror - Fatal编程技术网

Javascript ReactJS:在codemirror编辑器顶部显示另一个UI元素

Javascript ReactJS:在codemirror编辑器顶部显示另一个UI元素,javascript,reactjs,codemirror,tippyjs,react-codemirror,Javascript,Reactjs,Codemirror,Tippyjs,React Codemirror,我有一个codemirror对象。当光标悬停在代码上方时,我想在codemirror编辑器的顶部显示一个tippy按钮 到目前为止,我可以检测鼠标何时悬停,但我无法在编辑器顶部显示任何内容。我的代码如下,我还有一个 我会做一些createElement来创建tippy按钮吗 import React from "react"; import ReactDOM from "react-dom"; import { Controlled as CodeMirror } from "react-cod

我有一个codemirror对象。当光标悬停在代码上方时,我想在codemirror编辑器的顶部显示一个tippy按钮

到目前为止,我可以检测鼠标何时悬停,但我无法在编辑器顶部显示任何内容。我的代码如下,我还有一个

我会做一些
createElement
来创建tippy按钮吗

import React from "react";
import ReactDOM from "react-dom";
import { Controlled as CodeMirror } from "react-codemirror2";


var codeSample = `
openssl rand -base64 756 > <path-to-keyfile>
chmod 400 ~/KeyFilePath`

class App extends React.Component {
  state = {
    valueTit: "Hello"
  };

  constructor() {
    super();
  this.instance = null;

  }
  _onMouseMove(e) {
    console.log("mouse moved!!!")
      this.setState({ x: e.screenX, y: e.screenY });
      var node = event.srcElement;
      console.log(node.innerText);
      return(<Tooltip id="sib" interactive='true' title="hi"></Tooltip>)
    }
  render() {
    const { valueTit } = this.state;
    return (

      <Tooltip id="sib" interactive='true' title={valueTit}>
      <div onMouseMove={this._onMouseMove.bind(this)}>
        <CodeMirror
          value= {codeSample}
          options={{
            mode: "clike",
            theme: "material",
            lineNumbers: true
          }}
          editorDidMount={editor => { this.instance = editor }}
        />
        </div>
      </Tooltip>
    );
  }
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

export default App;
    const pushElement = (token, style) => {
      elements.push(_react["default"].createElement("span", {
        className: style ? prefix + style : '',
        key: ++index
      }, token));
    };

    const mode = codeMirror.findModeByName(language);
    codeMirror.runMode(value, mode ? mode.mime : language, (token, style) => {
      if (lastStyle === style) {
        tokenBuf += token;
        lastStyle = style;
      } else {
        if (tokenBuf) {
          pushElement(tokenBuf, lastStyle);
        }

        tokenBuf = token;
        lastStyle = style;
      }
    });
    pushElement(tokenBuf, lastStyle);

    const code = _react["default"].createElement("code", {
      className: inline ? `inline ${prefix}s-${theme}` : ''
    }, elements);

    return inline ? code : _react["default"].createElement("pre", {
      className: `${className} ${prefix}s-${theme}`
    }, code);
  }