[英]How to use Monaco Editor in a React functional component?
我的 React 項目中有一個功能組件。 我已將 Monaco 編輯器依賴項包含為
import * as Monaco from 'monaco-editor/esm/vs/editor/editor.api';
如何從這里使用Editor
對象來實際渲染和測試 monaco-editor 的東西?
我有如下代碼,
return (
<Flex>
<Flex.Box auto>
<Input.Textarea
ref={ref}
size="small"
value={value}
onChange={onChange}
onKeyPress={(e) => { handleKeyDown(e, value); }}
error={error}
readOnly={readOnly}
/>
<MonacoEnvironment.
</Flex.Box>
<Flex align="flex-start" w="21px">
{icon}
</Flex>
</Flex>
);
我正在查看 MonacoEnvironment 對象,但我對將其設置為編輯器一無所知。
我想在我的代碼中模仿以下功能,
monaco.editor.create(document.getElementById('container'), {
value: [
'function x() {',
'\tconsole.log("Hello world!");',
'}'
].join('\n'),
language: 'javascript'
});
我在這里看到兩個選項:
document.getElementById
調用。 這需要一個帶有 id container
的元素: return (
<Flex>
<Flex.Box auto>
<Input.Textarea
ref={ref}
size="small"
value={value}
onChange={onChange}
onKeyPress={(e) => { handleKeyDown(e, value); }}
error={error}
readOnly={readOnly}
/>
<div id="container />
</Flex.Box>
<Flex align="flex-start" w="21px">
{icon}
</Flex>
</Flex>
);
return (
<Flex>
<Flex.Box auto>
<Input.Textarea
ref={ref}
size="small"
value={value}
onChange={onChange}
onKeyPress={(e) => { handleKeyDown(e, value); }}
error={error}
readOnly={readOnly}
/>
<MonacoEditor
width="800"
height="600"
language="javascript"
theme="vs-dark"
value={code}
options={options}
/>
</Flex.Box>
<Flex align="flex-start" w="21px">
{icon}
</Flex>
</Flex>
);
然后您不需要第二部分,在那里您手動創建編輯器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.