আমি একটি উপস্থাপক উপাদান থেকে একটি উপস্থাপক উপাদান পৃথক করার চেষ্টা করছি। আমি একটি SitesTable
এবং একটি আছে SitesTableContainer
। ধারকটি বর্তমান ব্যবহারকারীর উপর ভিত্তি করে উপযুক্ত সাইটগুলি আনার জন্য রিডেক্স ক্রিয়াগুলি ট্রিগার করার জন্য দায়ী।
সমস্যাটি হ'ল বর্তমান ব্যবহারকারীর কন্টেন্টার উপাদানটি প্রাথমিকভাবে রেন্ডার হওয়ার পরে, অ্যাসিনক্রোনাসলি আনা হয়েছে। এর অর্থ হ'ল ধারক উপাদানটি জানে না যে এটির componentDidMount
ফাংশনে কোডটি পুনরায় কার্যকর করা দরকার যা প্রেরণে ডেটা আপডেট করে SitesTable
। আমি মনে করি যে ধারক উপাদানটির কোনও প্রপস (ব্যবহারকারী) পরিবর্তিত হলে আমার পুনরায় রেন্ডার করতে হবে। আমি কীভাবে এটি সঠিকভাবে করব?
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);