这无疑是一个边缘案例。我正在尝试使用一个插件,要求您在每次更新时创建New
实例。我想知道React是否提供了一个辅助方法来在收到新道具时清空Component的DOM。
以下是一个代码示例,以澄清:
export default React.createClass({
displayName: 'Item',
contextTypes: {
router: React.PropTypes.func
},
propTypes: {
items: React.PropTypes.object.isRequired
},
getInitialState() {
return AppStore.getState();
},
componentDidMount() {
this.renderSVG();
},
componentWillReceiveProps() {
this.renderSVG();
},
renderSVG() {
const {id}: string = this.context.router.getCurrentParams();
this.item = this.props.items[id];
this.classString = 'svg-container-' + this.item.id;
// TODO: find a solution for side-effects linting error
new Vivus(React.findDOMNode(this), {type: 'delayed', duration: 100, file: this.item.url});
},
render() {
return (
<div className={this.classString}></div>
);
}
});