【发布时间】:2019-07-20 23:24:28
【问题描述】:
我知道在 Redux 中通常应该有功能性的无状态组件。但是,我有一个相当不错的 react statefull 组件,并尝试重新设计它以与 Redux 一起使用。为什么?我不想使用 store 来处理这个组件逻辑的每一点,而这个组件可以正常工作;除了我想保留 lifycle 方法。我遇到的问题是看不到调度此组件状态的方法。
class LoginX extends React.Component {
constructor(props) {
super(props);
this.state = { login: '', password: '' };
}
handleChange = (e) => {
this.setState({
[e.currentTarget.name]: e.currentTarget.value,
});
}
render(){...}
}
这是简化的类,我删除了 90% 以保持可读性。
const mapStateToProps = (state) => {
return state;
}
const mapDispatchToProps = (dispatch) => {
return {
onClick: (e) => {e.preventDefault(); console.log('dispatch'); dispatch({
type: 'LOGIN_SUBMIT',
payload: {
token: {...LoginX.state}
}
})}
}};
let Login = connect(mapStateToProps, mapDispatchToProps)(LoginX);
export default Login;
这是其余的代码。你看,我写了token: {...LoginX.state} 来表明我想要什么。是的,我知道 Redux 组件应该可以正常工作,但也许有像我这样的情况的解决方法?
【问题讨论】:
-
您想将登录名和密码发送到您的右侧?这就是你不想做的一切?
-
就是这样。我想把它储存起来,以便采取进一步的行动。这里的课程真的是绝对简化了,实际上也是验证等,很多东西我想远离商店。