重建 ReactJs 组件
Rebuild ReactJs Component
我的应用程序中有一个 reactjs 组件 (compA),它调用另一个 reactjs 组件 (compB) 来挂载 compA。
在 compB 中,我有一个按钮,在功能中 "componentDidUpdate" 我需要销毁并重建 compA。
有人知道怎么做吗?
大概的代码是这样的,但是,在我的代码中,compA 和 B 它们在不同的文件中。
use strict';
var CompA = React.createClass({
getDefaultProps: function() {
return {
name: 'location',
}
},
render: function () {
return <CompB name={this.props.name}/>;
}
});
var CompB = React.createClass({
getDefaultProps: function() {
return {
name: 'select'
}
},
componentDidUpdate: function() {
$('.button').click(function() {
/*
* RELOAD HERE COMPONENT
*/
});
},
render: function () {
return <div><select name={this.props.name}><option value="x">X</option><option value="y">Y</option></select><button id="button">Reload</button></div>
}
});
ReactDOM.render(<CompA />, document.getElementsByID("compA"));
<html>
<body>
<div id="compA"></div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="https://fb.me/react-0.14.7.js"></script>
<script src="https://fb.me/react-dom-0.14.7.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
<script src="comp.jsx" type="text/jsx"></script>
</body>
您无法从 CompB 重建整个 CompA,但从 CompB 调用 setState 将重建 CompB,并且在您的情况下,将重建整个 CompA(因为其中没有任何其他内容)。
如果您想从 Ajax 源重建组件,您可以查看:
我的应用程序中有一个 reactjs 组件 (compA),它调用另一个 reactjs 组件 (compB) 来挂载 compA。
在 compB 中,我有一个按钮,在功能中 "componentDidUpdate" 我需要销毁并重建 compA。
有人知道怎么做吗?
大概的代码是这样的,但是,在我的代码中,compA 和 B 它们在不同的文件中。
use strict';
var CompA = React.createClass({
getDefaultProps: function() {
return {
name: 'location',
}
},
render: function () {
return <CompB name={this.props.name}/>;
}
});
var CompB = React.createClass({
getDefaultProps: function() {
return {
name: 'select'
}
},
componentDidUpdate: function() {
$('.button').click(function() {
/*
* RELOAD HERE COMPONENT
*/
});
},
render: function () {
return <div><select name={this.props.name}><option value="x">X</option><option value="y">Y</option></select><button id="button">Reload</button></div>
}
});
ReactDOM.render(<CompA />, document.getElementsByID("compA"));
<html>
<body>
<div id="compA"></div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="https://fb.me/react-0.14.7.js"></script>
<script src="https://fb.me/react-dom-0.14.7.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
<script src="comp.jsx" type="text/jsx"></script>
</body>
您无法从 CompB 重建整个 CompA,但从 CompB 调用 setState 将重建 CompB,并且在您的情况下,将重建整个 CompA(因为其中没有任何其他内容)。
如果您想从 Ajax 源重建组件,您可以查看: