componentWillReceiveProps到React挂钩

时间:2020-05-31 11:59:34

标签: reactjs react-redux react-hooks

我想将基于类的组件更改为功能组件,而我拥有

const initialState={

     displayName: "",
        email: "",
        password: "",
        confirmPassword: "",
        error: "",
    }


componentWillReceiveProps(nextProps,nextContext){
const userError=nextProps;
if(userError){
this.setState({error:userError.message});
}
}

我做选择器

export const selectUserError = createSelector(
  [selectUser],
  (user) => user.error
);





 {this.state.error ? (
        <SweetAlert
          show={this.state.error}
          type="warning"
          title="Something went wrong"
          text={this.props.userError}
          onConfirm={() => this.setState({ error: "" })}
        />
      ) : null}

,然后我将mapState传递给道具。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

您无需使用状态存储道具,而只需使用道具中的数据

const {userError} = this.props;
...
 {userError && userError.message ? (
        <SweetAlert
          show={!!userError.message}
          type="warning"
          title="Something went wrong"
          text={userError.message}
          onConfirm={() => this.props.dispatch({ type: 'RESET_ERROR', error: "" })} // Dispatch and action here that updates state in store
        />
      ) : null}

答案 1 :(得分:-1)

由于@ shubham-khatri的帮助,我解决了问题。 我在user.types中输入RESET_ERROR类型,此后,我执行操作reseterror。 在我的注册组件中分派,之后可以在onConfirm方法中使用。 很好。