Sunumsal bir bileşeni bir konteyner bileşeninden ayırmaya çalışıyorum. Bir SitesTable
ve bir var SitesTableContainer
. Konteyner, mevcut kullanıcıya bağlı olarak uygun siteleri getirmek için yeniden düzenleme eylemlerini tetiklemekten sorumludur.
Sorun, kapsayıcı bileşeni başlangıçta oluşturulduktan sonra mevcut kullanıcının eşzamansız olarak getirilmesidir. Bu, kapsayıcı bileşeninin, componentDidMount
işlevindeki kodu SitesTable
,. Props'larından (kullanıcı) biri değiştiğinde konteyner bileşenini yeniden oluşturmam gerektiğini düşünüyorum. Bunu nasıl doğru bir şekilde yaparım?
class SitesTableContainer extends React.Component {
static get propTypes() {
return {
sites: React.PropTypes.object,
user: React.PropTypes.object,
isManager: React.PropTypes.boolean
}
}
componentDidMount() {
if (this.props.isManager) {
this.props.dispatch(actions.fetchAllSites())
} else {
const currentUserId = this.props.user.get('id')
this.props.dispatch(actions.fetchUsersSites(currentUserId))
}
}
render() {
return <SitesTable sites={this.props.sites}/>
}
}
function mapStateToProps(state) {
const user = userUtils.getCurrentUser(state)
return {
sites: state.get('sites'),
user,
isManager: userUtils.isManager(user)
}
}
export default connect(mapStateToProps)(SitesTableContainer);