Не могу получить доступ к реквизитам в функции - PullRequest
0 голосов
/ 08 января 2020

Я хочу получить доступ к функции, которая находится в подпорках, после извлечения данных с помощью ax ios, но я получаю ошибку:

Ожидается назначение или вызов функции, и вместо этого я увидел выражение no-unused- выражения

Я могу получить доступ к той же функции внутри jsx, но она не работает, когда я пытаюсь вызвать ее из функции / ax ios. Вот мой код:

function LoginModal(props) {


let emailInput = React.createRef();
let passwordInput = React.createRef();



const getToken = (props) => {
    axios.post('http://localhost:8000/api/token/', {
        username: emailInput.current.value,
        password: passwordInput.current.value
      })
      .then(function (response) {
        props.closeModalHandler();
      })

}

return (
    <div className={styles.Background} onClick={props.closeModalHandler}>
    <div className={styles.ModalContainer}>
        <h2>Log in.</h2>
        <div className={styles.InputContainer}>
            <input type="text" className={styles.Input} ref={emailInput} />
            <label htmlFor="" className={styles.ActiveLabel}>Email</label>
        </div>
        <div className={styles.InputContainer}>
            <input type="password" className={styles.Input} ref={passwordInput}/>
            <label htmlFor="" className={styles.ActiveLabel}>Password</label>
        </div>
        <button className={styles.LoginButton}
                onClick={getToken}>Log me in</button>
        <p>Forgot password? <br/>
           Reset it <b>here</b>
        </p>

    </div>
</div>
)}

1 Ответ

6 голосов
/ 08 января 2020

props не передается обработчику onClick (объект события syntheti c React есть). Просто удалите параметр из списка параметров getToken, чтобы он закрывался над списком, переданным LoginModal:

const getToken = () => {
// −−−−−−−−−−−−−−^^
    axios.post('http://localhost:8000/api/token/', {
        username: emailInput.current.value,
        password: passwordInput.current.value
      })
      .then(function (response) {
        props.closeModalHandler();
      })
      // *** Handle errors here -- you probably have to close the modal even
      // when things go wrong...
}
...