javascript - 反应:提示按钮不显示 onCursorActivity
问题描述
我正在使用CodeMirror进行语法高亮显示。当用户单击文本时,我想触发一个弹出窗口。我正在使用 React Tippy——一个基于 Tippy.js 的 React 组件。
基本上,我没有收到任何提示弹出窗口。我也没有收到任何错误。
我在这里有一个沙盒示例:https ://codesandbox.io/s/focused-currying-uo469
import React from "react";
import ReactDOM from "react-dom";
import 'react-tippy/dist/tippy.css'
import {
Tooltip,
} from 'react-tippy';
//import "codemirror-extension"
/* eslint no-restricted-globals: "off"*/
function App() {
return (
<div className="App">
<CodeMirror
value="<h1>I ♥ react-codemirror2</h1>"
options={{
mode: "xml",
theme: "material",
lineNumbers: true
}}
onCursorActivity={(editor) => {
console.log("tuppppy");
return (
<div id="parent">
<Tooltip id="sib"
trigger="click"
html={(
<div id="poop">
<strong>
Hello
</strong>
</div>)}
>
</Tooltip>
</div>
);
}}
/>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
export default App;
解决方案
根据其文件
“cursorActivity”(实例:CodeMirror)将在光标或选择移动,或对编辑器内容进行任何更改时触发。
当你返回一个 jsx 元素时它什么也不做。
React Tooltip 的工作原理是它会弹出并锚定到它的子组件。因此,您需要在 Code Mirror 上对其进行变形才能显示出来。
这是一个工作版本 https://codesandbox.io/s/jovial-varahamihira-xg6ty?fontsize=14
推荐阅读
- javascript - vuetify 输入附加按钮加载器工作不正确
- flutter - 如何测试从原生调用到 Flutter 的方法通道?
- excel - 我在哪里添加这个功能
- facebook-android-sdk - Facebook 分析中已弃用用户属性
- jquery - 循环加载函数 - 全部完成后回调?
- angular - 创建一个观察者并通知我的订阅者
- node.js - Logstash节拍输入“节拍协议的无效版本”
- javascript - 如果定义了数字 0,是否有更聪明的测试方法?
- linux - 在linux中使用ftrace了解nvme linux驱动
- sas - 将观察添加到表 SAS 的末尾