首页 > 解决方案 > 状态更新后组件未重新渲染 - 无状态破坏

问题描述

我的状态正在更新,但是视图没有重新呈现。

我在这里和互联网上的其他地方查看了许多答案,我很确定我没有改变我的状态。我已经确保状态实际上发生了变化。我不确定还有什么问题。

const mapStateToProps = ({ user }: ApplicationState) => ({
  user
});

const mapDispatchToProps = (dispatch: Dispatch) => ({
  setUser: (name: string) => dispatch(setUser(name))
});

export default connect<PropsFromState, PropsFromDispatch>(
  mapStateToProps,
  mapDispatchToProps
)(Login);


export const userReducer: Reducer<UserState> = (state = initialState, action) => {
  console.log(state);
  switch (action.type) {
    case SET_USER: {
      return { ...state, user: action.payload };
    }
    default: {
      return state;
    }
  }
};


<Provider store={store}>
    <Login />
</Provider>

class Login extends Component<LoginProps> {
  render() {
    return (
      <View style={styles.container}>
        <View style={styles.logoContainer}>
          <Image style={styles.logo} source={require("../../assets/images/logo.png")} />
          <Text style={styles.title}>UniRide</Text>
          <Text style={styles.description}>A social carpooling app for students {this.props.user.user}</Text>
        </View>

        <View style={styles.formContainer}>
          <LoginForm setUser={this.props.setUser} />
        </View>
      </View>
    );
  }
}

我检查了减速器是否被调用,并且状态正在改变。但是,页面不会重新呈现。

标签: react-nativeredux

解决方案


推荐阅读