Как вызвать функцию в функции в React (аутентификация, маршрутизация) - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь создать компонент, который выполняется прямо при загрузке DOM, onInit ();

Эта функция отправляет токен в конечную точку, затем в случае успеха я пытаюсь запустить функцию с именем ' valid () '

Проблема, которую я продолжаю получать, заключается в том, что, когда я пытаюсь вызвать' valid 'функцию в ответ, она говорит, что не может история неопределенных.

Я думаю, что я не передаю реквизиты в правильном направлении.

Также в случае неудачи должна быть возвращена страница с ошибкой.

Спасибо за любую помощь по этому вопросу

export class LandingPage extends Component {
    constructor(props) {
        super(props);
        this.state = {};
        this.valid = this.valid.bind(this);
    }

    valid = () => {
        auth.login(() => {
            this.props.history.push("/app");
        });
    };

    componentDidMount() {
        onInit();

        function onInit(props) {

            const apiUrl = "www.somefakedomain.com/endpoint"

            axios
                .post(apiUrl, {
                    token: 'somevalue123'
                })
                .then(function(response) {
                    console.log(response);
                    //CALL VALID FUNCTION HERE
                    this.valid; //throws error, how to run function here
                })
                .catch(function(error) {
                    console.log(error);
                    //Show Error Page
                });
        }
    }
    render() {
        return (
            <div>
                <Spinner />
            </div>
        );
    }
}

1 Ответ

1 голос
/ 23 апреля 2020

Вы ничего не передаете своей функции onInIt.

Возможно, вы пытаетесь сделать что-то подобное? -

export class LandingPage extends Component {
    constructor(props) {
        super(props);
        this.state = {};
        this.valid = this.valid.bind(this);
    }

    valid = () => {
        auth.login(() => {
            this.props.history.push("/app");
        });
    };

    componentDidMount() {
        function onInit(props) {

            const apiUrl = "www.somefakedomain.com/endpoint"

            axios
                .post(apiUrl, {
                    token: 'somevalue123'
                })
                .then(function(response) {
                    console.log(response);
                    //CALL VALID FUNCTION HERE
                    this.valid(); //need to call function not reference it//throws error, how to run function here
                })
                .catch(function(error) {
                    console.log(error);
                    //Show Error Page
                });
        }
      onInIt(this.props);
    }
    render() {
        return (
            <div>
                <Spinner />
        </div>
    );
}
}

javascript reactjs function authent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...