mapStateToProps 不会改变状态 [英] mapStateToProps doesn't change state
问题描述
我是 redux 的新手并想学习它,我想在成功登录后重定向到仪表板内容,这是我的代码:
class Dashboard extends Component {状态 = {记录:假};使成为() {const { 类} = this.props;console.log(this.state.logged)返回 (<div>{this.state.logged ?<div><p>你好</p>
: 登录()
)}}const mapStateToProps = (state, props) =>{返回 {记录:state.logged}}导出默认连接(mapStateToProps)(仪表板)
减速器:
const initialState = {登录: [],记录:假}函数 rootReducer(state = initialState, action) {开关(动作.类型){案例 VALIDATE_LOGIN:返回 {//记录:action.text.name == "a" &&action.text.password == "b" ?真假,...状态,记录:真实}默认:返回状态}}导出默认 rootReducer
为什么它不想改变仪表板的状态并呈现正确的内容?谢谢
在这里编辑我添加代码,我在那里发送我的减速器:登录:
class 登录扩展组件 {状态 = {名称: "",密码: ""};handleLogin = () =>{this.props.LogIn(this.state)}使成为() {返回 (<div><排版变体="h3">登录表格</排版><表格><TextField label="name" onChange={el =>this.setState({name: el.target.value})}/><TextField label="password" type="password" onChange={el =>this.setState({password: el.target.value})}/><Button onClick={this.handleLogin}>登录</Button></表单>
);}}const dispatchToProps = dispatch =>{返回 {登录:登录 =>调度(登录(登录))}}导出默认连接(空,dispatchToProps)(登录);
当我尝试控制台 log 登录 mapStateToProps 时,我可以看到 logging 已更改为 true,但遗憾的是在仪表板上没有可见效果.我的想法是,它可能在更改状态后不会重新渲染,但我不知道...
更改
{this.state.logged ?<div><p>你好</p>