reactjs - 在按钮单击时获取代码编辑器的值
问题描述
我只是想在用户单击“查看代码”按钮时将所有代码编辑器的代码简单地显示到控制台。
尝试通过状态传递值,但没有运气。关于如何做到这一点的任何想法?
这是我到目前为止得到的代码:
import React from "react";
import ReactDOM from "react-dom";
import AceEditor from "react-ace";
import "ace-builds/src-noconflict/mode-javascript";
import "ace-builds/src-noconflict/theme-monokai";
import "./styles.css";
class App extends React.Component {
constructor(props) {
super(props);
this.state = { value: "" };
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(event) {
alert("A code is: " + this.state.value);
event.preventDefault();
}
render() {
function onChange(codeValue) {
console.log("change", codeValue);
}
return (
<div className="App">
<p>Ace Code Editor</p>
<AceEditor
value={`// Creating a const
const hello = "Hello World";
// Console log the variable above on the next line:
`}
mode="javascript"
theme="monokai"
name="UNIQUE_ID_OF_DIV"
fontSize={16}
onChange={onChange}
editorProps={{ $blockScrolling: true }}
/>
<button onClick={this.handleSubmit}>See Code</button>
</div>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
解决方案
您的onChange
函数不会更新状态。
推荐阅读
- php - 如何捕获字符串中子字符串的所有实例 - 使用正则表达式
- python - 从字符串中删除数字会导致 SettingWithCopyWarning
- python-3.x - Python-拆分数据框
- php - CodeIgniter Updating Session - multiple array layer
- angular - 将服务价值纳入 Angular 组件的视图
- c# - C# -- 使用 Amazon oauth2 登录 -- 执行 POST 请求时出错
- node.js - How to create a conditional debug Visual Studio Code with node js
- python - AttributeError: module 'datetime' has no attribute 'time'
- xcode - Xcode:如何使用 cmd + x 剪切一行或剪切选定的文本
- rstudio - Cannot see all my functions when running Open CPU single-user server