Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将redux状态复制到组件状态是优化react应用程序的好方法?_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 将redux状态复制到组件状态是优化react应用程序的好方法?

Javascript 将redux状态复制到组件状态是优化react应用程序的好方法?,javascript,reactjs,redux,Javascript,Reactjs,Redux,当我需要更改应用程序状态时,我会将redux状态的一部分复制到组件状态,并像这样处理本地状态 export class User extends React.Component { state = { user: this.props.user, }; render() { return ( <div> <input value={this.state.user.name} onC

当我需要更改应用程序状态时,我会将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);
导出类用户扩展React.Component{
状态={
用户:this.props.user,
};
render(){
返回(
拯救
);
}
userNameChange=({target})=>{
this.setState((prevState)=>({
用户:{
…prevState.user,
名称:target.value,
},
}));
}
saveUser=()=>{
常数{
用户操作,
}=这是道具;
常数{
用户,
}=本州;
userActions.save(用户);
}
}
常量mapStateToUserProps=(状态)=>({
用户:state.user,
});
const mapDispatchToUserProps=(调度)=>({
userActions:bindActionCreators(userActions,dispatch),
})
export const UserContainer=connect(mapStateToUserProps,mapsdispatchtouserprops)(用户);
这将阻止调用redux选择器。
这是优化应用程序的好方法,还是所有的更改都应该只对减速机进行?

我相信没有太大的不同,因为最后你想保存/编辑数据,所以你需要在最后发送一个
请求

更重要的是创建一个请求较少的应用程序,如果你有大数据,你应该尽量在服务器端过滤你的数据

如果没有/更改某些局部变量,则应使用state,否则应使用
redux存储


我希望这对您有所帮助。

我的意思是,更改用户名将发送许多操作,而用户保存将发送一个操作。