繁体   English   中英

如何在不使用函数参数的情况下将值传递给函数?

[英]How can I pass a value into a function without using function parameters?

我有一个返回 React Query 突变钩子的工厂函数,如下所示:

function useMutationFactory(mutationFunction: (axios: Axios) => (params: any) => any) {
    const baseURL = getBaseURL(); // Retrieves the Base URL (this is dynamic)
    const axios = useAxios({baseURL}); // Creates an Axios instance with the URL
    ...
    return useMutation(mutationFunction(axios));
}

useMutation的常用变异函数是(params: any) => any ,我必须对它进行 curry 以将 axios 传递给用户。 我想看看是否可以在mutationFunction中使用axios 而无需进行柯里化。

我的想法是使用原型,并为每个 axios http 方法编写包装函数。 像这样的东西:

const Mutation = {
    queryGet: (...params: Parameters<Axios["get"]>) => {
        const axios = this.prototype.axios; // Not sure about this part
        return axios.get(...params);
    }
}

来自用户的变异函数是这样的:

const mutation = useMutationFactory((params) => {
     const res = Mutation.queryGet("/");
});

我一直坚持将 axios 转换为Mutation 理想情况下, axios 不会传递给用户,因此我必须在 useMutationFactory 中设置useMutationFactory 我不能使用apply()call() ,因为用户必须调用它(我假设)。 我对对象原型还是很陌生,所以我将不胜感激任何建议或帮助!

好吧,让函数对全局范围内的变量执行某些操作,将全局范围内的变量更新/更改为您要传递给函数的值,然后调用函数以读取变量的更新值。

我在我的手机自动取款机上,否则我会给出一个代码示例。 希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM