Saya ingin menyimpan fungsi api di halaman terpisah tetapi saya tidak dapat memanggil fungsi panggilan api Login dari komponen login

Kesalahan konsol - TypeError: _services__WEBPACK_IMPORTED_MODULE_3__.UseApi.Login bukan fungsi

//services
export const UseApi = () => {
    const Login = (email, password) => {
        axios.post('/api/login', { email: email, password: password})
           .then((result) => {
           });
    }
}


// login component
import { UseApi } from "./services" ;
const Login = () => {
    const handleSubmit = (event) => {
        UseApi.Login(email, password) 
    }
}
1
ShibinRagh 23 Mei 2020, 15:55

1 menjawab

Jawaban Terbaik

useApi adalah fungsi dengan fungsi lain Login yang didefinisikan di dalamnya.

Baik mengembalikan fungsi dari useApi fungsi

export const UseApi = () => {
    return (email, password) => {
        axios.post('/api/login', { email: email, password: password})
           .then((result) => {
                // code
           });
    }
}

Dan menyebutnya sebagai UseApi()(email, password)

Atau hapus saja fungsi bersarang

export const UseApi = (email, password) => {
     axios.post('/api/login', { email: email, password: password})
     .then((result) => {
          // code
      });

}

Dan menyebutnya sebagai UseApi(email, password)

Pendekatan lain bisa dengan mengembalikan objek dari fungsi UseApi yang berisi fungsi login

export const UseApi = () => {
    return {
        login: (email, password) => {
          axios.post('/api/login', { email: email, password: password})
            .then((result) => {
                // code
            });
        }
    }
}

Dan menyebutnya sebagai UseApi().login(email, password)

1
Yousaf 23 Mei 2020, 13:08