reactjs - Reactjs 从另一个组件调用函数
问题描述
我想将 api 函数保留在单独的页面中,但我无法从登录组件调用登录 api 调用函数
控制台错误 - TypeError: _services__WEBPACK_IMPORTED_MODULE_3__.UseApi.Login 不是函数
//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)
}
}
解决方案
useApi
是一个函数,其中Login
定义了另一个函数。
要么从函数返回useApi
函数
export const UseApi = () => {
return (email, password) => {
axios.post('/api/login', { email: email, password: password})
.then((result) => {
// code
});
}
}
并将其称为UseApi()(email, password)
或者只是删除嵌套函数
export const UseApi = (email, password) => {
axios.post('/api/login', { email: email, password: password})
.then((result) => {
// code
});
}
并将其称为UseApi(email, password)
UseApi
另一种方法可能是从包含该login
函数的函数返回一个对象
export const UseApi = () => {
return {
login: (email, password) => {
axios.post('/api/login', { email: email, password: password})
.then((result) => {
// code
});
}
}
}
并将其称为UseApi().login(email, password)
推荐阅读
- javascript - 为什么有些 JavaScript 需要网络服务器?
- docker - 无法从分类帐中读取块号 3,因为在索引中找不到条目,正在跳过...?
- django - Django:validate_date() 缺少 1 个必需的位置参数:'value'
- c# - 如何使用最短路径返回多个节点?
- spring - 错误:在 Spring boot kotlin 新项目中找不到或加载主类
- python - Python face_recognition 数据集质量
- django - Django 3.0 + 频道 + ASGI + TokenAuthMiddleware
- bash - 使用bash将表格转换为文本文件中的逗号分隔
- android - Google Assistant Action - 隐式调用体验
- matlab - 如何创建具有逻辑变量的数组并在 for 循环中遍历这些变量?