在我的一个项目中,我正在使用 html-react-parser 模块。 在我的组件中,我有一个非常简单的if / else条件:
import React, {Component} from 'react';
import {connect} from 'react-redux';
import HTMLParser from '../../components/htmlParser'
class Content extends Component {
render() {
if( this.props.layout === 'one_column' ){
return <div className="one-column"><HTMLParser parse={this.props.content} /></div>
}
else {
return <HTMLParser parse={this.props.content} />;
}
}
}
function mapStateToProps({reducerContent},ownProps) {
return {...reducerContent}
}
export default connect(mapStateToProps,null)(Content)
有趣的是,我的第一个请求返回“ two_columns”,然后输入“ else”语句。一切都很好。我的HTMLParser组件呈现并触发 componentDidUpdate 事件。但是我的第二个请求返回“ one_column”,我输入“ if”语句,HTMLParser得到渲染,但不会触发componentDidUpdate事件。如果我删除将他包裹在“ if”状态的div,那一切都很好。任何人都知道为什么会这样吗?