我想将基于类的组件更改为功能组件,而我拥有
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传递给道具。 有人可以帮忙吗?
答案 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方法中使用。 很好。