好的,所以我开始让我的头绕着ReactJs,但一直被一个简单的概念困扰着,它是一个简单的旧jQuery的简单概念。从一个反应组件向另一个反应组件注入内容onClick
我希望能够在点击事件发生在另一个元素上时添加到屏幕上的一个元素的内容。在react tutorial之后,我完全理解他们已经实现了添加到评论列表的方式,评论列表是父母的设置状态的孩子..但肯定这不是唯一的方式,因为它感觉非常僵硬和僵化。
下面是我想解释的一个简单模型。在按钮的点击,我想注入新的内容到DIV ID为“newComments” .. JSBin:http://jsbin.com/vokufujupu/1/edit
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
</head>
<body>
<div id="content"></div>
<script type="text/jsx">
var InputBox = React.createClass({
clickHandler: function(){
//Append a new string to the end of the existing copy in the copy box
alert('after this alert the value of the button should be appended to the content of the div#newComments');
},
render: function() {
return (
<div classNmae="copyBox">
<input type="button" name="inputButton" value="click me button" className="bbbc"
onClick={this.clickHandler} />
</div>
);
}
});
var CopyBox = React.createClass({
render: function() {
return (
<div classNmae="copyBox">
<p>div#newComments:</p>
<div id="newComments"></div>
</div>
);
}
});
var Page = React.createClass({
render: function() {
return (
<div>
<CopyBox/>
<InputBox/>
</div>
);
}
});
React.render(
<Page/>,
document.getElementById('content')
);
</script>
<!-- The equiv in plain old js -->
<script type="text/javascript">
function newContent(obj){
document.getElementById('vanBox').innerHTML = document.getElementById('vanBox').innerHTML + obj.value;
}
</script>
<div id="vanilaJsEquiv">
<div id="vanBox"></div>
<input type="button" value="ClickyClik" onclick="newContent(this)"/>
</div>
</body>
</html>
我一直在四处狩猎谷歌及yonks的文档,并不能找到答案..