【发布时间】:2019-09-24 12:24:59
【问题描述】:
当我需要更改应用程序状态时,我将部分 redux 状态复制到组件状态并像这样使用本地状态
export class User extends React.Component {
state = {
user: this.props.user,
};
render() {
return (
<div>
<input
value={this.state.user.name}
onChange={this.changeUserName}
/>
<button onClick={this.saveUser}>Save</button>
</div>
);
}
userNameChange = ({target}) => {
this.setState((prevState) => ({
user: {
...prevState.user,
name: target.value,
},
}));
}
saveUser = () => {
const {
userActions,
} = this.props;
const {
user,
} = this.state;
userActions.save(user);
}
}
const mapStateToUserProps = (state) => ({
user: state.user,
});
const mapDispatchToUserProps = (dispatch) => ({
userActions: bindActionCreators(UserActions, dispatch),
})
export const UserContainer = connect(mapStateToUserProps, mapDispatchToUserProps)(User);
这将阻止调用 redux 选择器。 这是优化应用程序的好方法还是应该只对减速器进行所有更改?
【问题讨论】:
标签: javascript reactjs redux