首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React获取codemirror值onClick

React获取codemirror值onClick
EN

Stack Overflow用户
提问于 2019-07-14 12:01:07
回答 2查看 1.4K关注 0票数 1

我正在尝试获取以下代码,以便在单击按钮时显示CodeMirror onChange值,然后在"output“div中显示该值。

我是比较新的反应,所以不确定是通过状态传递值是最好的,还是有更简单的方法。

到目前为止,我的代码如下:

代码语言:javascript
复制
import React, { Component } from "react";
import { UnControlled as CodeMirror } from "react-codemirror2";
import "codemirror/mode/javascript/javascript";
import "codemirror/lib/codemirror.css";

export default class Code extends Component {
  render() {
    return (
      <div>
        <CodeMirror
          value='console.log("Hello World")'
          options={{
            mode: "javascript",
            lineNumbers: true
          }}
          onChange={(editor, data, value) => {
            console.log(value);
          }}
        />
        <button onClick={}>run code</button>

        <div className="Output">
          <p>// Value should go here</p>
        </div>
      </div>
    );
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-14 12:57:36

您可以使用state来维护您的值,并显示您所在州的输出,

代码语言:javascript
复制
class Code extends Component {
  constructor(props) {
    super(props)
    this.state = {
      runCode: false,
      outputText: 'console.log("Hello World")',
    }
  }
  runCode = () => {
    this.setState({runCode: true})
  }
  render() {
    return (
      <div>
        <CodeMirror
          value={this.state.outputText}
          options={{
            mode: 'javascript',
            lineNumbers: true,
          }}
          onChange={(editor, data, value) => {
            this.setState({
              runCode: false,
              outputText: value,
            })
          }}
        />
        <button onClick={this.runCode}>run code</button>

        <div className="Output">
          <pre>{this.state.runCode && this.state.outputText}</pre>
        </div>
      </div>
    )
  }
}

Demo -单击按钮时附加的输出。

Demo1 -键入时附加的输出。

票数 1
EN

Stack Overflow用户

发布于 2019-07-14 12:49:43

在这种情况下,您需要添加状态:

代码语言:javascript
复制
export default class Code extends Component {
    state={
       value: ''
     }
  render() {
    return (
      <div>
        <CodeMirror
          value='console.log("Hello World")'
          options={{
            mode: "javascript",
            lineNumbers: true
          }}
          onChange={(editor, data, value) => {
            this.setState({value});
          }}
        />
        <button onClick={}>run code</button>

        <div className="Output">
          <p>{this.state.value}</p>
        </div>
      </div>
    );
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57024486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档