Reactjs——强制刷新的工作流是什么?
Reactjs - what is the workflow to force a refresh?
我只是想创建一个react组件包装CodeMirror(4.1)编辑器。
我遇到了这个问题,一旦组件加载,就会通过强制刷新来解决这个问题,但是当react被添加到图片中时,我不太确定我需要实现这个工作流程。
建议是,为了克服这个错误,我需要"在调整包装容器的大小后调用.refresh()。"
我的代码目前在Editor组件中如下所示:
function ($, React, CodeMirror) {
return React.createClass({
render: function () {
console.log("render-editarea");
return (
<textarea id="editarea">
-- Comment here
USE [All Data Items];
SELECT ID FROM [Test Event]
</textarea>
)
},
componentDidMount: function () {
var onExecute = this.props.onExecute;
var editorNode = document.getElementById("editarea");
console.log("componentDidUpdate-editarea:" + editorNode);
var editor = CodeMirror.fromTextArea(editorNode, {
lineNumbers: true,
matchBrackets: true,
indentUnit: 4,
mode: "text/x-mssql",
extraKeys: {"Ctrl-E": function(cm) {
console.log(editor.getValue());
onExecute(editor.getValue());
}}
});
},
,它通过父组件
的Render函数加载我试过了
- 将窗口大小调整事件(如React手册中所示)挂接在
- 强制刷新父组件的
componentDidMount
功能使用$("#editarea").refresh();
,但这两个似乎都不起作用
所以如果有人能告诉我正确的方法,我会很感激的。
许多thx使用ref
属性来引用渲染节点而不是id或DOM选择器:
function ($, React, CodeMirror) {
return React.createClass({
render: function () {
console.log("render-editarea");
return (
<textarea ref="editarea">
-- Comment here
USE [All Data Items];
SELECT ID FROM [Test Event]
</textarea>
)
},
componentDidMount: function () {
var onExecute = this.props.onExecute;
var editorNode = this.refs.editarea;
console.log("componentDidUpdate-editarea:" + editorNode);
var editor = CodeMirror.fromTextArea(editorNode, {
lineNumbers: true,
matchBrackets: true,
indentUnit: 4,
mode: "text/x-mssql",
extraKeys: {"Ctrl-E": function(cm) {
console.log(editor.getValue());
onExecute(editor.getValue());
}}
});
},
所以这篇文章帮助了我。.refresh()是codemmirror上的一个函数,我还没有完全理解。我在parents componentDidLoad事件中使用了该方法。
componentDidMount: function () {
$('.CodeMirror').each(function(i, el){
el.CodeMirror.refresh();
});
},
相关文章:
- 让 jquery 为 ajax 添加的元素工作的最佳方法是什么?
- 角度控制器的作用是什么;t控制器'他的工作由指令来完成
- 处理、解析和流式传输大型文本文件的实用方法是什么
- FileWriter在javascript中究竟是什么工作的
- 在流式 CSS 中指定相对路径的正确方法是什么?
- 操作 RxJS 流并发布结果的可观察量的正确方法是什么?
- 在浏览器中处理流式 JS 内容的最佳方法是什么
- Asp.net.服务器端验证和客户端验证很好地协同工作的最佳方式是什么?
- change和onchange don'I don’我不能在电脑上工作.可能是什么原因造成的
- 是什么阻止了这个简单的HTML代码的工作
- 使用生成器和迭代器管理流的正确模式是什么
- AJAX中的XMLHttpRequest变量是如何工作的?它的工作原理是什么
- Chrome扩展无法正常工作,是我做错了什么吗
- 当一个实时网站在文件系统中工作时,是什么导致它无法工作
- 确定一个bug是浏览器的错误还是我自己的错误的工作流程是什么?
- Javascript表单提交不工作.会是什么呢?
- 在给定的工作流中,对angularjs和指令的最佳实践是什么?
- AngularJS是如何做它的工作的(是什么让它打勾的)
- Reactjs——强制刷新的工作流是什么?
- [Javascript]- removeEvenlistner不工作,是什么问题