我正在研究一个基本上是记事本的项目.虽然在进行ajax调用时更新了它的值,但我遇到了问题.我尝试设置textarea的value属性,但是不能对其值进行更改.如何在状态上进行更改textarea的值更改并可以进行编辑.
我的代码如下.
在父类中
<Editor name={this.state.fileData} />
Run Code Online (Sandbox Code Playgroud)
在Editor类中
var Editor = React.createClass({
render: function() {
return (
<form id="noter-save-form" method="POST">
<textarea id="noter-text-area" name="textarea" value={this.props.name}></textarea>
<input type="submit" value="Save" />
</form>
);
}
Run Code Online (Sandbox Code Playgroud)
});
我不能使用defaultValue,因为textarea的值在页面加载时是未知的,当我尝试将数据放在textareas之间时没有任何反应.我希望它在状态发生变化时采用状态值,但在两者之间可编辑.
谢谢
编辑
我设法使用jQuery工作,但我想在React中这样做,我在渲染之前调用它:
$('#noter-text-area').val(this.props.name);
Run Code Online (Sandbox Code Playgroud) 我有一个网站,服务器在其中生成一些javascript并将其通过ajax发送到客户端。问题是,我想在页面上使用React,但不知道要调用哪个函数。现在,JavaScript在jQuery中,我使用eval()在客户端执行javascript。什么是适用于JSX的eval()的React等效项。
我正在使用contentEditablediv 并希望在调用提交时获取其中的文本。我试过了,this.refs.textarea.value.trim()但这似乎不起作用。我的代码在渲染返回中如下
<div><form onSubmit={this.handleSubmit} id="noter-save-form" method="POST">
<div id="noter-text-area" contentEditable="true" ref="textarea">{value}</div>
Run Code Online (Sandbox Code Playgroud)
和handleSubmit功能。
handleSubmit: function(e) {
e.preventDefault();
var text = this.refs.textarea.value.trim();
alert(text);
this.saveFile(text);
},
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助。我只是想用可编辑 div 中的实际内容替换文本变量。
我正在构建一个程序,使用Bing的搜索API和常见的lisp与Drakma库来显示一些结果但由于某种原因在发送更长的查询时出错.它根本不显示任何结果.它适用于较短长度的查询.我正在使用临时帐户来解决这个问题.我有以下代码.
(defun get-rid-of-spaces (var)
(cl-ppcre:regex-replace-all " " var "%20"))
(defun print-bing (search-term)
(format nil "https://api.datamarket.azure.com/Bing/Search/v1/Web?Query=%27~a%27&Options=%27DisableLocationDetection%27&$format=json&$top=1" (get-rid-of-spaces search-term)))
(defun drakma-bing (search-term)
(drakma:http-request (print-bing search-term)
:basic-authorization
'("bob.hammerston@mailinator.com" "L2gbaj+s1/KW/+ifAa9HrP0C1/kClpF4InH48Lw8UNc")))
(defun convert-to-string (response)
(map 'string #'code-char response))
Run Code Online (Sandbox Code Playgroud)
然后我称之为,但它只适用于短搜索术语,我无法弄清楚原因.这不起作用:
(convert-to-string (drakma-bing "what is the largest man in the world"))
Run Code Online (Sandbox Code Playgroud)
但这样做
(convert-to-string (drakma-bing "what is"))
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
谢谢.
编辑:
我尝试手动编码print-bing函数,而不是使用带有更长字符串的函数,但它仍然不起作用,因此Drakma必定存在错误.我尝试手动将域名输入到Web浏览器中,这样就可以了,这就是为什么我认为错误与Drakma有关.
我正在编写一个常见的lisp程序,我有一个可以包含字符串或函数的变量.我想调用函数,如果它是一个并返回该字符串.如何测试变量是否为函数?
代码到目前为止:
(defun string-or-function (var)
(if (typep var 'simple-array)
var
(if "Function equivalent of typep goes here."
(setf temp (fn-that-does-something))
(string-or-function temp)
Run Code Online (Sandbox Code Playgroud)
编辑:有效的代码:
(defun string-or-function (var)
(let ((s-or-f (type-of var)))
(if (equal s-or-f 'function)
(print "function")
(if (equal (car s-or-f) 'simple-array)
(print "string")))))
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
我试图在Common Lisp中获取JSON导入.我想出了如何从JSON字符串解码对象,但我不知道如何访问返回的对象的属性.要解码一个字符串(并将结果存储在***tempjson**中),我这样做:
(defun test-json ()
(with-input-from-string
(s "{\"foo\": [1, 2, 3], \"bar\": true, \"baz\": \"!\"}")
(defparameter *tempjson* (json:decode-json s))))
Run Code Online (Sandbox Code Playgroud)
如何访问*tempjson*数据.例如,如何获取foo属性的值?
这是一个非常简单的问题.我正在尝试解决HackerRank问题,但不完全理解我如何写入*standard-input*以便在我的计算机上运行代码.
它要求给定一个数组,给定数组的长度(N),然后是数组本身全部在*standard-input*上.
Hackerranks使用*standard-input*来给出值,如果我可以在输入中存储值然后读取它们,那将是最简单的.
我的问题是如何写入*standard-input*?这将使我在计算机上而不是在云中工作变得更加容易.