我想让我的组件知道是否已经加载了某个库。要知道从任何上下文我将它连接到我的商店的“库”reducer 到我的组件。我还this.props.dataObject
从调用组件的父级传递了一个配置对象。像这样:
class GoogleButton extends Component {
render() {
if (this.props.libraries.google) {
return <a id='sharePost' className='google_icon'></a>
} else {
return null
}
}
componentDidUpdate() {
gapi.interactivepost.render('sharePost', this.props.dataObject)
}
}
function mapStateToProps(state) {
return { libraries: state.libraries }
}
export default connect(mapStateToProps)(GoogleButton)
处理库状态的reducer是这样的:
let newState = {...state}
newState[action.libraryName] = action.state
return newState
当我更改库状态时componentDidUpdate
。问题是当我更改父继承的props时this.props.dataObject
。在这种情况下,componentDidUpdate 不会触发。如果我connect
从组件中删除它,它会按预期工作。我在这里遗漏了什么?