我有一个自定义钩子,需要通过2个事件调用它。事件getInitialURL
中的一个返回承诺:
const RespondToUrlComponent: React.FC<Props> = () => {
const setParamsFromUrl = useSetParamsFromUrl();
Linking.addEventListener("url", e => {
setParamsFromUrl.set(e.url);
});
Linking.getInitialURL().then(res => {
if (res) {
setParamsFromUrl.set(res);
}
});
return null;
};
这会导致错误:
[未处理的承诺拒绝:永久违反:无效的挂接调用。挂钩只能在功能组件的主体内部调用。发生这种情况可能是由于以下原因之一:]
我知道不能有条件地调用钩子,我也没有发布不能从诺言中调用钩子的信息。我该如何解决?
我可以将getInitialURL
与useState
一起使用,以在诺言返回时加载组件,并将自定义钩子放入该组件中。但是,这似乎是间接的。