现在,我的屏幕组件中有很多auth函数,我想将它们提取到一个handlers文件中,但是,它们依赖于设置一些加载和结果状态。
如何正确地将setState作为参数传递给函数?
const handleSignIn = async (email: string) => {
setLoading(true);
const { error } = await supabase.auth.signInWithOtp({
email: email,
});
if (error) {
console.log(error);
setLoading(false);
} else {
setLoading(false);
navigation.navigate('VerifyOtp', { email: userEmail });
}
};
在这个例子中,我想重构这个函数,比如它接受另一个参数setLoading
,我该怎么做呢?
先谢谢你。
3条答案
按热度按时间4bbkushb1#
您可以创建自己的自定义钩子并将其提取到自己的文件中
vulvrdjw2#
可以像在另一个答案中那样传递callback,但我更喜欢用另一种方式:
顺便说一下,我不确定
{ email: userEmail }
是什么。userEmail
是打印错误(应该是email
)还是某个全局变量或来自另一个钩子?它应该在useMemo
deps中以某种方式处理。6g8kf2rb3#
最直接的方法是依赖注入。
现在在React组件中: