Sunumsal bir bileşeni bir konteyner bileşeninden ayırmaya çalışıyorum. Bir SitesTableve 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, componentDidMountiş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);