не может получить обновленные данные из базы данных при перенаправлении обратно на веб-страницу из внешнего API - PullRequest
0 голосов
/ 02 августа 2020

В настоящее время я создаю мини-веб-приложение, которое использует внешний API для метода оплаты. В настоящее время после оплаты пользователь будет перенаправлен со страницы на внешний API, а затем, как только платеж будет создан, он будет перенаправлен обратно на мою веб-страницу. Однако при перенаправлении полученные данные не являются самыми последними данными (например: перед тем, как перейти к платежу, пользователь может редактировать свой профиль. Полученные данные будут данными до того, как пользователь отредактирует свой профиль, а не обновленным). Ниже приведен код моего компонента EditProfile:

class EditProfile extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            image: null,
            editpass: false,
            password: "",
            newPassword: "",
            newPassword2: "",
            tempImg: null,
            isLoading: false,
            ...queryString.parse(this.props.location.search),
            ...this.props.user,
        };
    }

    async componentDidMount() {
        if (this.props.token && !this.props.isAuthenticated) {
            await this.props.loadUser();
        }
        if (this.props.user.accounttype === "buyer" || !this.props.token)
            window.location.assign("/");

        if (
            this.state.code &&
            this.props.user._id &&
            !this.props.user.stripeseller
        ) {
            await this.props.getStripeSeller(this.state.state, this.state.code);
        }
    }

    componentDidUpdate(prevProps) {
        if (this.props.user !== prevProps.user) {
            this.setState({
                ...this.props.user,
            });
        }
    }
render() {
        if (this.props.user && this.props.user._id) {
            return (
                <form
                    onSubmit={this.handleSubmit}
                    className={"w-full max-w-lg mx-auto my-6"}
                >...other code here
}else {<Loading/>}
}

Токен взят из localStorage. Еще одна странная вещь: когда пользователь выходит из системы и снова входит в систему, полученные данные будут обновленной версией. Если кто-нибудь знает, как обеспечить получение обновленных данных при обратном перенаправлении, я буду очень благодарен за это!

...