propsReact.js中是否有使用事件将子项传递给父项的简单方法?
var Child = React.createClass({
render: function() {
<a onClick={this.props.onClick}>Click me</a>
}
});
var Parent = React.createClass({
onClick: function(event) {
// event.component.props ?why is this not available?
},
render: function() {
<Child onClick={this.onClick} />
}
});
Run Code Online (Sandbox Code Playgroud)
我知道你可以使用受控组件来传递输入的值,但通过整个工具包n'kaboodle会很不错.有时,子组件包含一组您不必查找的信息.
也许有一种方法将组件绑定到事件?
在使用React超过一年之后,在Sebastien Lorber的回答的推动下,我总结了传递子组件作为父母函数的参数实际上并不是 React方式,也不是一个好主意.我已经改变了答案.
我有一棵结构未知的树.首先,我想找到一个包含一串文本"Something"的节点.然后,在识别字符串在树中的位置之后,我想要更新相对于字符串位置的不同节点.数据是一个深度嵌套的地图,其中包含多个列表分支.
拉链可以吗?
我研究了这种编辑树的方法:http://www.exampler.com/blog/2010/09/01/editing-trees-in-clojure-with-clojurezip/.问题是,我事先没有知道字符串的位置.
我有一个包含模块的模型.我想在模块中覆盖模型的访问器方法.
例如:
class Blah < ActiveRecord::Base
include GnarlyFeatures
# database field: name
end
module GnarlyFeatures
def name=(value)
write_attribute :name, "Your New Name"
end
end
Run Code Online (Sandbox Code Playgroud)
这显然不起作用.有什么想法来完成这个?
假设我在leiningen项目中使用了一个库,托管在Clojars上.我遇到了一个错误.我在Github上分叉项目,修复bug.怎么办?
在我的leiningen项目中使用我的库版本最合适的方法是什么?
PS我来自Ruby世界,所以我显然已经想到了Bundler ......
每次我在 Ring 项目中保存 Clojure 源文件时,会话都会重置。
请注意ring-sessionID。我在每个之前都保存了我的handler.clj文件:
2015-03-17 11:02:51,857 INFO onelog.core: Starting :get / for 127.0.0.1 {"accept-encoding" "gzip, deflate, sdch", "cache-control" "max-age=0", "connection" "keep-alive", "user-agent" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36", "accept-language" "en-US,en;q=0.8", "accept" "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "host" "localhost:3000", "cookie" "ring-session=40575c9e-fbe9-4fd5-8624-d5e4ef9d98a9"}
2015-03-17 11:02:51,859 INFO onelog.core: Finished :get / for 127.0.0.1 in (2 ms) Status: 404
2015-03-17 11:03:01,147 INFO onelog.core: Starting :get / for 127.0.0.1 {"accept-encoding" "gzip, deflate, sdch", "cache-control" "max-age=0", "connection" "keep-alive", …Run Code Online (Sandbox Code Playgroud)