我建议你把那个逻辑移到Container Component
你connects
UserMainenance
的redux store
这将帮助您将数据层与Presentational Component
不知道如何获取要渲染的数据的层分开。它只需要知道如何呈现该数据。
import React, {Component, PropTypes} from 'react';
import {connect} from 'react-redux';
import {fetchUser} from './actions';
import UserMaintenance from './UserMaintenance';
class UserContainer extends Component {
componentWillMount() {
const {fetchUser, userId} = this.props;
fetchUser(userId);
}
render() {
return (
<UserMaintenance {...this.props} />
);
}
}
const mapStateToProps = (state, ownProps) => ({
userId: ownProps.params.userId
user: state.user,
});
export default connect(
mapStateToProps, {fetchUser}
)(UserContainer);
假设你有fetchUser
actionCreator。
我强烈建议您观看Dan Abramov(Redux 的创建者)在https://egghead.io上的Browse the Building React Applications with Idiomatic Redux 课程。它是免费的,并且很好地涵盖了这个主题。